Close

Introdução ao ImageLabeller


O ImageLabeller é um aplicativo de demonstração simples que usa aprendizado de máquina para aplicar etiquetas às imagens. Ele usa o AWS Lambda, o AWS DynamoDB, o AWS S3, o AWS SageMaker, o AWS API Gateway, o AWS CloudWatch e o AWS CloudFormation, e é escrito em Go e Python. Este guia aborda como usar as ferramentas do Atlassian Open DevOps para implementar e monitorar um subconjunto desses componentes.

Arquitetura do ImageLabeller

Diagrama

Como funciona

Um usuário invoca o AWS Lambda SubmitImage, passando um URL de imagem válido como parâmetro. O SubmitImage baixa a imagem, a carrega para uma open-devops-images- do bucket do AWS S3, insere uma nova tupla em uma tabela do AWS DynamoDB ImageLabels e retorna um token de ID de imagem para o usuário. O token de ID da imagem é usado para correlacionar a imagem em open-devops-images- e a tupla em ImageLabels.

O AWS Lambda InvokeLabeller tem um acionador de eventos do AWS DynamoDB. O InvokeLabeller baixa a imagem correspondente de open-devops-images-, chama um modelo pré-treinado do AWS SageMaker Inception V3 para gerar etiquetas de imagem e atualiza a tupla em ImageLabels quando uma nova tupla é inserida nele.

O usuário invoca o AWS Lambda GetImageLabel, passando o token de ID da imagem como parâmetro. GetImageLabel pesquisa as categorias associadas ao token de ID da imagem em ImageLabels e as retorna ao usuário. O usuário recebe uma categoria NOT_CLASSIFIED se o modelo do AWS SageMaker não tiver concluído o processamento de uma imagem.

O ImageLabeller é implementado em cinco ambientes. Há um ambiente Teste no us-west-1, um ambiente Staging no us-east-2 e três ambientes de produção no us-west-2, us-east-1 e ca-central-1.

Componentes

Os buckets do AWS S3 e as tabelas do AWS DynamoDB que fazem parte do ImageLabeller são implementados usando modelos do AWS CloudFormation. Este guia oferece informações de configuração de IC/CD (integração/implementação contínuas) sobre como implementar os buckets do AWS S3. O processo de implementação das tabelas do AWS DynamoDB é quase idêntico e é deixado como um exercício para você realizar sozinho.

Há três AWS Lambda no ImageLabeller: SubmitImage, InvokeLabeller e GetImageLabel. Este guia oferece informações de configuração de IC/CD sobre como implementar o SubmitImage. O processo de implementação do GetImageLabel é quase idêntico e também deve ser concluído por conta própria.

O InvokeLabeller é um AWS Lambda baseado em python e requer pequenas atualizações antes de poder ser publicado. Especificamente, o InvokeLabeller depende da configuração do AWS SageMaker, que é feita por meio do console da AWS.

Os testes do sistema incluídos no projeto ImageLabeller o testam como um todo. Os testes vão falhar se algum componente do ImageLabeller não estiver presente ou funcionando conforme o esperado. Todas as implementações de SubmitImage, GetImageLabel e InvokeLabeller executam os testes do sistema como parte de seus respectivos pipelines de IC/CD.

Para a implementação inicial de SubmitImage, GetImageLabel e InvokeLabeller, você precisa comentar as etapas de execução do teste do sistema. Depois que as implementações forem executadas com êxito uma vez, você vai poder remover os comentários das etapas de execução do teste do sistema e reimplementar.

Pedido de implementação de componentes

Faça a implementação manual do modelo pré-treinado do AWS SageMaker por meio do console da AWS

Implemente repositórios de infraestrutura da AWS

  1. s3_infra
  2. dynamodb_infra

Implemente o AWS Lambdas

  1. SubmitImage
  2. GetImageLabel
  3. InvokeLabeller

Implemente testes do sistema

Implemente o CloudWatchAlarms

Configure o modelo pré-treinado do AWS SageMaker

Informações de como configurar o modelo pré-treinado do AWS SageMaker.

Integração do Jira com IC/CD

Conecte suas ferramentas de planejamento, repositório, integração/implementação contínuas e monitoramento com o Atlassian Open DevOps.

Warren Marusiak
Warren Marusiak

Warren is a Canadian developer from Vancouver, BC with over 10 years of experience. He came to Atlassian from AWS in January of 2021.


Compartilhe este artigo

Leitura recomendada

Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.

Ilustração do DevOps

Comunidade de DevOps

Ilustração do DevOps

Caminho de aprendizagem de DevOps

Ilustração do mapa

Comece gratuitamente

Inscreva-se para receber a newsletter de DevOps

Thank you for signing up