【问题标题】:AWS lambda function to restart one of the ECS cluster serviceAWS lambda 函数用于重启 ECS 集群服务之一
【发布时间】:2020-03-19 09:53:18
【问题描述】:

我们正在使用 fargateECS 集群 中部署多个服务,在前端我们使用 nginx 服务。在后端,一些服务被频繁部署。一旦部署了任何后端服务,我们需要手动强制更新 nginx 服务。当任何新服务部署成功时,我们有什么方法可以只强制更新 nginx 服务?

我们怎样才能做到这一点?使用 lambda 或 cloudwatch....
任何帮助表示赞赏,在此先感谢

【问题讨论】:

  • update_service?见[这个][boto3.amazonaws.com/v1/documentation/api/latest/reference/…。我认为你可以使用 forceNewDeployment 来实现。
  • 通过手动我们可以强制更新服务...但是我们需要以自动化方式进行.....就像如果在集群下部署的任何服务我们希望每次都重新启动一个容器
  • 您可以使用 CLI 运行 update_service 吗?如果是这样,您可以在后端 Docker 映像中执行此操作(例如,在引用 nginx 服务的 startup.sh 脚本中)。如果不是,则在启动任务here 时触发 CloudWatch 事件,然后使用 Lambda 函数将 update_service 运行为 done here

标签: aws-lambda amazon-ecs amazon-cloudwatch aws-fargate


【解决方案1】:

当后端服务更新时,您可以使用 cloud watch 来触发 lambda。此 lambda 可以使用 AWS 开发工具包重新启动 Nginx 容器服务/任务。您还可以对您的 Nginx 容器以及所有后端服务进行版本控制,以便在您的后端更改并且任务定义更改时包含新映像时推送新的 Nginx 映像。提供您使用的 AWS ECS 服务,它可以自行更新。

更多信息请看这里:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service.html

【讨论】:

  • 使用 lambda 函数实现了这一点....在带有 json 有效负载的代码管道中添加了步骤。部署任务完成后会触发 lambda 函数停止和启动 nginx 服务。
猜你喜欢
  • 1970-01-01
  • 2020-03-12
  • 1970-01-01
  • 2018-12-23
  • 2023-03-30
  • 1970-01-01
  • 2019-06-08
  • 2021-02-13
  • 1970-01-01
相关资源
最近更新 更多