服务更新完成后,ECS会收到通知吗?

时间:2019-12-04 06:11:35

标签: amazon-web-services amazon-ecs

更新ECS服务时,新的docker容器将被一个接一个地部署,直到每个容器都被新版本替换为止。

我们想知道何时完全部署新版本,我想这可能意味着其中任何一个

  • 所有旧版本任务已被注销,并且至少一个新版本任务已注册
  • 每个旧版本的任务都已替换为较新的版本

我们可以收到两个事件中的任何一个的通知吗?

(可能通过堆栈)

1 个答案:

答案 0 :(得分:0)

这两个事件似乎都与Task State Change Event相关,都与任务级事件相关。

  

所有旧版本任务均已注销,并且至少有一个新任务   版本任务已注册

由于注销过程,容器已停止或已终止,似乎您需要将状态从运行中更改为已停止

为此,您可以创建云监视规则,该规则将在发生STOPPED事件时触发。

{
  "source": [
    "aws.ecs"
  ],
  "detail-type": [
    "ECS Task State Change"
  ],
  "detail": {
    "lastStatus": [
      "STOPPED"
    ],
    "clusterArn": [
      "arn:aws:ecs:us-west-2:123456789:cluster/cluster-a",
      "arn:aws:ecs:us-west-2:123456789:cluster/cluster-b"
       ]
  }
}

将目标SNS或lambda设置为接收事件,只要上述两个集群中的任务统计信息发生变化,这就会触发通知。

  

每个旧版本的任务都已替换为较新的版本

此事件与服务级别事件更相关,AWS最近宣布了此功能,因为您对适当的部署事件感兴趣,而只有在任务启动并在服务中运行时,服务才会触发SERVICE_STEADY_STATE

  

以前,客户可以接收针对ECS任务的CloudWatch Events   和实例,但ECS服务事件仅可通过ECS获得   API,要求客户轮询API并实现自己的逻辑   用于自动化和记录服务事件。借助ECS服务行动   通过CloudWatch Events中的事件,客户可以轻松实现实时自动化   对事件的响应。例如,客户可以   根据特定情况自动触发AWS Lambda函数   ECS服务操作。或者,客户可以流式传输所有ECS服务操作   事件到CloudWatch Logs组,从而启用事件后取证   分析。

amazon-ecs-service-events-now-available-as-cloudwatch-events-2019-11

SERVICE_STEADY_STATE

该服务运行状况良好,并按预期的任务数量运行,从而达到稳定状态。

您可以尝试类似

{
    "source": [
        "aws.ecs"
    ],
    "detail-type": [
        "ECS Service Action"
    ],
  "detail": {
    "eventName": [
      "SERVICE_STEADY_STATE"
    ]
}

ecs_service_events