Close

ImageLabeller 简介


ImageLabeller 是一款使用机器学习将标签应用于图像的简单演示应用。它使用 AWS LambdaAWS DynamoDBAWS S3AWS SageMakerAWS API GatewayAWS CloudWatchAWS CloudFormation,并且采用 GoPython 编写。本指南介绍如何使用 Atlassian Open DevOps 工具部署和监控这些组件的子集。

ImageLabeller 架构

示意图

工作原理

用户调用 AWS Lambda SubmitImage,将有效的图像 URL 作为参数传递。SubmitImage 下载图像,将其上传到 AWS S3 存储桶 open-devops-images-,将一个新元组插入 AWS DynamoDB 表 ImageLabels 中,然后将图像 ID 令牌返回给用户。图像 ID 令牌用于关联 open-devops-images- 中的图像和 ImageLabels 中的元组。

AWS Lambda InvokeLabeller 有一个 AWS DynamoDB 事件触发器。InvokeLabeller 从 open-devops-images- 下载相应的图像,调用预训练的 AWS SageMaker Inception V3 模型来生成图像标签,然后在将一个新元组插入 ImageLabels 中时更新 ImageLabels 中的元组。

用户调用 AWS Lambda GetImageLabel,将图像 ID 令牌作为参数传递。GetImageLabel 在 ImageLabels 中查找与图像 ID 令牌关联的标签,然后将其返回给用户。如果 AWS SageMaker 模型尚未完成处理图像,则用户会获得 NOT_CLASSIVED 标签。

ImageLabeller 部署到五个环境。us-west-1 中一个测试环境,us-east-2 中一个暂存环境,us-west-2、us-east-1 和 ca-central-1 中三个生产环境。

组件

属于 ImageLabeller 一部分的 AWS S3 存储桶和 AWS DynamoDB 表是使用 AWS CloudFormation 模板部署的。本指南提供有关如何部署 AWS S3 存储桶的 CI/CD 配置信息。部署 AWS DynamoDB 表的过程几乎相同,留作练习,让您自己完成。

ImageLabeller 中有三个 AWS Lambda:SubmitImage、InvokeLabeller 和 GetImageLabel。本指南提供有关如何部署 SubmitImage 的 CI/CD 配置信息。部署 GetImageLabel 的过程几乎相同,也留给您自己完成。

InvokeLabeller 是一款基于 python 的 AWS Lambda,需要稍作更新才能发布。具体而言,InvokeLabeller 依赖于 AWS SageMaker 配置,该配置通过 AWS 控制台完成。

ImageLabeller 项目中包含的系统测试对整个 ImageLabeller 进行了测试。如果 ImageLabeller 的任何组件不存在或无法按预期工作,则测试将失败。SubmitImage、GetImageLabel 和 InvokeLabeller 部署都将系统测试作为各自的 CI/CD 管道的一部分执行。

对于 SubmitImage、GetImageLabel 和 InvokeLabeller 的初始部署,您需要注释掉系统测试执行步骤。部署成功运行一次后,您可以取消注释系统测试执行步骤,然后重新部署。

部署组件的顺序

通过 AWS 控制台手动部署 AWS SageMaker 预训练模型

部署 AWS 基础架构存储库

  1. s3_infra
  2. dynamodb_infra

部署 AWS Lambdas

  1. SubmitImage
  2. GetImageLabel
  3. InvokeLabeller

部署系统测试

部署 CloudWatchAlarms

设置 AWS SageMaker 预训练模型

详细介绍如何设置 AWS SageMaker 预训练模型。

Jira 与 CI/CD 集成

将您的计划、存储库、CI/CD 和监控工具与 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.


分享这篇文章

推荐阅读

将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。

Devops 示意图

DevOps 社区

Devops 示意图

DevOps 学习路径

地图插图

免费试用

注册以获取我们的 DevOps 新闻资讯

Thank you for signing up