Close

Setup the AWS SageMaker pre-trained model

Warren Marusiak headshot
Warren Marusiak

Senior Technical Evangelist

To demonstrate how to develop, deploy, and manage applications using Jira Software and various connected tools, our team created ImageLabeller, a simple demo application built on AWS that uses machine learning to apply labels to images.

This page covers how to setup an AWS SageMaker predefined model, a prerequisite for ImageLabeller to successfully process images. Before you begin, we recommend reading the ImageLabeller architecture for context.


Log in to AWS Console and navigate to Amazon SageMaker.

Screenshot of AWS console

Go to Amazon SageMaker Studio.

Screenshot of Amazon SageMaker Studio

Choose Quick start > Execution role > Create an IAM role.

Screenshot of Quick start

Click Create role. Then click Submit.

Screenshot of Create an IAM role

SageMaker will take a while to setup. Once it’s ready, click Open Studio.

Screenshot of post-setup

Click Go to SageMake JumpStart.

Screenshot of SageMaker JumpStart

Locate, and click on Inception V3.

Screenshot of vision models

Change the Machine Type to ml.m5.large, change the Endpoint Name to something more readable like “image-labeller-endpoint”, and click Deploy.

Screenshot of deploy model

AWS SageMaker will start to deploy the model.

Screenshot of deployment starting

Click Open Notebook when the deployment is finished.

Screenshot of endpoint status

Run all three of the notebook code blocks in order to verify things are working. Make a note of the endpoint_name in query_endpoint. You need to add this, and the region your AWS SageMaker notebook is in to the InvokeLabeller AWS Lambda.

For information on how to use Jupyter notebooks please read the documentation.

Screenshot query endpoint

Open InvokeLabeller’s src/app.py file and look for query_endpoint. change the endpoint_name, and client region_name to match your AWS SageMaker notebook.

def query_endpoint(img):
  endpoint_name = 'jumpstart-dft-image-labeller-endpoint'
  client = boto3.client(service_name='runtime.sagemaker', region_name='us-west-1')
  response = client.invoke_endpoint(EndpointName=endpoint_name, ContentType='application/x-image', Body=img)
  model_predictions = json.loads(response['Body'].read())['predictions'][0]
  return model_predictions

With SageMaker configuration complete, the next step is to deploy ImageLabeller with either Bitbucket, GitHub, or GitLab.

Warren Marusiak
Warren Marusiak

Warren is a former developer turned technical evangelist who joined Atlassian in 2021. He has worked on everything from COBOL telecoms software running on mainframes to modern cloud infrastructure at AWS. He has a passion for technology and a research background in machine learning. As a technical evangelist, Warren builds awareness of the capabilities of Atlassian products and partner integrations through demos, writings, and videos. He also curates the Developer’s Edge video series (link). In his spare time, you can find him practicing his passion for Brazilian Jiu-Jitsu.


Share this article

Recommended reading

Bookmark these resources to learn about types of DevOps teams, or for ongoing updates about DevOps at Atlassian.

Devops illustration

DevOps community

Devops illustration

DevOps learning path

Map illustration

Get started for free

Sign up for our DevOps newsletter

Thank you for signing up