amazon-web-services - 服务更新完成时 ECS 收到通知?
问题描述
更新 ECS 服务时,会一个一个部署新的 docker 容器,直到每个容器都被新版本替换。
我们想知道新版本何时完全部署,我想这可能意味着其中任何一个
- 所有旧版本任务已注销,并且至少有一个新版本任务已注册
- 每个旧版本任务都已被新版本替换
我们可以得到这两个事件中的任何一个的通知吗?
(可能通过堆栈)
解决方案
这两个事件似乎都与任务状态更改事件相关,因为两者都与任务级别事件相关。
所有旧版本任务已注销,并且至少有一个新版本任务已注册
由于注销过程、容器已停止或已终止,您似乎需要将状态从RUNNING 更改为 STOPPED 。
为此,您可以创建云监视规则,它会在发生 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 最近宣布了此功能,因为您对 profer 部署事件感兴趣,而服务仅SERVICE_STEADY_STATE
在任务启动并在服务中运行时才会触发。
以前,客户可以接收 ECS 任务和实例的 CloudWatch 事件,但 ECS 服务事件只能通过 ECS API 获得,这需要客户轮询 API 并实现自己的逻辑以实现服务事件的自动化和日志记录。借助 CloudWatch Events 中的 ECS 服务操作事件,客户可以轻松地在事件发生时自动对其进行实时响应。例如,客户可以自动触发 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"
]
}
推荐阅读
- python - python fastai TextLMDataBunch给了我“数据框中的NaN”错误,但没有
- reactjs - React-financial-charts 在 div 外显示 svg
- reactjs - 对象访问后变成字符串
- javascript - JS如何防止对象被访问
- android-studio - 我们如何在 android lint 检查代码中获取根项目路径?
- if-statement - x86 使用 .IF 、 .ELSE 和 .ELSEIF 比较两个数字
- python - 使用Pyrogram注册新手机号账号时,手机收不到短信验证码?
- kubernetes - Pod 之间的 AKS 内部通信不起作用
- java - 我应该如何映射器接收正确的值
- google-colaboratory - 将“jk”重新映射到
在 Google Colab Vim 中