amazon-web-services - AWS ECS : Monitoring the status of a service update

标签 amazon-web-services continuous-deployment amazon-ecs aws-fargate

我正在尝试使用 Fargate 将一组微服务从 Docker Swarm 迁移到 AWS ECS。

我已经创建了一个 ECS 集群。此外,我使用 ECR 初始化了存储库,每个存储库都包含一个微服务的图像。

我已经成功地想出了一种创建新图像并将它们推送到 ECR 的方法。事实上,随着代码的每次更改,都会构建、标记和推送一个新的 docker 镜像。

此外,我创建了一个链接到服务的任务定义。此任务定义包含一个容器和所有必要信息。此外,它的服务定义了任务将在 VPC 中运行,并链接到负载均衡器,并具有目标组。我假设每个新部署都使用带有“最新”标签的镜像。

到目前为止,根据我的解释,一切都很清楚并且运行良好。

下面是让我困惑的部分。每次新构建后,我想更新服务,以便部署更新镜像的新任务。我正在使用 cli 使用以下命令执行此操作:
aws ecs update-service --cluster <cluster-name> --service <service-name>
通常,在执行命令后,我会在事件选项卡下监视部署日志,并使用以下命令检查服务的状态:
aws ecs describe-services --cluster <cluster-name> --service <service-name>
最后,我尝试模拟新创建的图像包含错误代码的情况。因此,新任务将无法部署。我目睹的是 Fargate 将继续尝试(不停止)部署新任务。此外,除了事件日志之外,describe-services命令不包含相关信息,除了 Fargate 正在执行的操作(例如,注册/注销任务)。我很惊讶我找不到任何指示 Fargate 或服务停止部署并回滚到现有服务的机制。

我找到了这篇文章( https://aws.amazon.com/blogs/compute/automating-rollback-of-failed-amazon-ecs-deployments/ ),它提供了一个解决方案。然而,它是一个相当复杂的,并假设每个新的部署是由一个新的任务定义触发的,这不是我想要的。

因此,考虑到我上面的描述,我希望您能回答以下问题:

1) 使用 CLI 命令(用于自动化目的)在多次尝试部署新任务失败后,有没有办法指示 Fargate 自动停止当前部署?

2) 使用 CLI 命令,有没有办法监控部署的当前状态?例如,当对 Docker swarm 上的服务执行服务更新时,终端会在更新过程中生成实时日志

3) 部署失败后,Fargate 是否可以通过信号发送错误代码、标志或消息?

最佳答案

目前,ECS 不直接提供部署状态。一旦您发布部署,除了不断轮询更新直到您有足够的信息可以从中推断出更新之外,没有其他方法可以确定其状态。加号unexpected container exits没有记录在任何地方。您必须搜索失败的任务。我获取它们的方式是通过 cloudwatch 规则在任务状态更改时触发 lambda。
我建议你阅读:https://medium.com/@aaron.kaz.music/monitoring-the-health-of-ecs-service-deployments-baeea41ae737

关于amazon-web-services - AWS ECS : Monitoring the status of a service update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54131672/

相关文章:

python - 在 Cloudformation 中使用时无法从 S3 下载引导文件

amazon-web-services - DynamoDB 暂存/生产/开发版本

javascript - AWS Lambda 不返回警报列表

c# - 将 Azure 设置为不预编译源代码

azure - 使用 azure ci cd 本地部署 Java 代码

amazon-web-services - 如何理解 Amazon ECS 集群

ios - 如何使用 AWS DynamoDBQueryExpression 获取最近添加的 10 个项目?

git - 推送到 Git 主分支后自动更新数百个 Windows 部署

docker - 我是否需要 AWS ECS 中带有 nginx 的 AWS 负载均衡器?

amazon-web-services - AWS ECS Service FastAPI 项目存在垃圾邮件 "GET/HTTP/1.1"404 Not Found