How it works
A user invokes AWS Lambda SubmitImage, passing a valid image URL as a parameter. SubmitImage downloads the image, uploads it to an AWS S3 bucket open-devops-images-, inserts a new tuple into an AWS DynamoDB table ImageLabels, and returns an image ID token to the user. The image ID token is used to correlate the image in open-devops-images-, and the tuple in ImageLabels.
The AWS Lambda InvokeLabeller has an AWS DynamoDB event trigger. InvokeLabeller downloads the corresponding image from open-devops-images-, calls a pre-trained AWS SageMaker Inception V3 model to generate image labels, and updates the tuple in ImageLabels when a new tuple is inserted into ImageLabels.
The user invokes AWS Lambda GetImageLabel, passing the image ID token as a parameter. GetImageLabel looks up the labels associated with the image ID token in ImageLabels, and returns them to the user. The user gets a NOT_CLASSIFIED label if the AWS SageMaker model hasn’t finished processing an image.
ImageLabeller is deployed to five environments. A Test environment in us-west-1, a Staging environment in us-east-2, and three Production environments in us-west-2, us-east-1, and ca-central-1.