我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
利用 亚马逊云科技 Fargate 任务停用通知提高运营可见度
简介
用于容器化工作负载的无服务器计算引擎
亚马逊云科技 最近更新了 亚马逊云科技 Fargate 任务停用流程,整合了 客户收到的有关即将停用的
背景
在 亚马逊云科技 Fargate 上部署
随着时间的推移,亚马逊云科技 可能会决定需要停用支持正在运行的任务的现有平台版本修订。修订版停用后,亚马逊云科技 Fargate 将停止在该修订版上运行的所有任务。可能需要停用修订版的原因有很多,包括安全漏洞和性能改进。过去,亚马逊云科技 Fargate 每月停用一到两个平台版本修订,但是没有针对特定平台版本修订的固定支持期。由于平台版本修订版的生命周期通常较长,因此与任务运行多周的客户相比,工作负载较短的客户遇到的任务停用次数要少得多。
上图显示了 亚马逊云科技 Fargate 平台版本修订版的完整生命周期。新的平台版本修订版启动后,所有新任务都将安排在此修订版中。已经计划并正在运行的现有任务将在任务期间保留在原来的版本上,并且不会迁移到新修订版。如果任务被替换,例如在
任务停用
下图显示了 亚马逊云科技 Fargate 任务停用的端到端流程。
当 亚马逊云科技 将平台版本修订版标记为需要停用时,我们会识别所有 亚马逊云科技 区域在该平台版本修订版上运行的所有任务。然后,我们会向每个地区的每个账户发送一条通知,重点说明受影响的任务或服务以及退出的开始日期。该通知通过电子邮件发送给 亚马逊云科技 账户的主要电邮联系人以及 亚马逊云科技 Healt
发送通知后,如果客户想要控制 亚马逊云科技 Fargate 启动自动任务停用流程之前的确切时间,则他们需要一段时间(称为任务停用等待期)采取手动措施。当 亚马逊云科技 Fargate 停止某项任务时,如果该任务是 ECS 服务的一部分,则该任务将按照该服务的 min
为了最大限度地减少 亚马逊云科技 Fargate 任务停用的影响,应按
有关任务停用流程的更多信息,请参阅
任务停用等待期
任务停用等待期的时长现在可以由新的
Far
gateTaskRetirementWaitPerio d 来控制。在 亚马逊云科技 Fargate 停止任务以停用任务之前,客户可以利用任务停用等待期按自己的计划停止任务,例如,如果他们的工作负载只能在特定窗口中停止。
任务停用等待期可以配置为下表中设置的时间间隔之一。我们建议尽可能缩短等待期,以便更快地获得新的平台版本修订版。
| Days | Action |
| 0 | 亚马逊云科技 sends the notification and immediately starts to retire affected tasks. |
| 7 | 亚马逊云科技 sends the notification and waits 7 calendar days before starting to retire affected tasks. |
| 14 | 亚马逊云科技 sends the notification and waits 14 calendar days before starting to retire affected tasks. |
在罕见的关键安全更新的情况下,亚马逊云科技 Fargate 可能会覆盖此任务停用等待期,发送任务停用通知并立即停用受影响的任务。
反映了将
FargateTas
k RetirementWaitPeriod 设置为 0 的效果。
可以使用 aws ecs list-account-s
ettings 命令查看现有的 fargateTaskRetirementWait
period 值。
FargateTaskRetirementWait
Period 可以使用 aws ecs put-account-setting-default 命令进行
解决方案概述:捕获任务停用通知
当任务即将停用时,亚马逊云科技 会向 亚马逊云科技 Healt
为 “AWS 健康事件” , 事件详细信息类型代码为 “AWS
_ECS_TASK_PATCHING_RETIREM EN
T”。
下图显示了该解决方案的高级架构。
先决条件
要完成演练,需要满足以下先决条件:
-
安装并启用了
传入 Webhook Slack 应用程序的现有 Slac k 工作区。 - 具有部署亚马逊 EventBridge 规则和 亚马逊云科技 Lambda 函数的相关权限的 亚马逊云科技 账户。
-
在本地开发工作站上 安装和配置了
亚马逊云科技 SAM CLI 。
解决方案演练
-
演练的示例代码存储在
GitHub 存储库 中。本演练的第一步是将存储库克隆到本地开发工作站。
-
接下来,我们将构建和部署 Lambda 函数以及在 AWS SAM 模板 cloudformation.yaml 中定义的 EventBridge 规则。请注意,你需要在部署向导中输入参数,包括你的 Slack 工作空间 URI 和 Slack 频道。
- 测试一下!在这里,我们向亚马逊 EventBridge 发送了两个示例事件,以确保一切正常运行。由于我们无法模拟 亚马逊云科技 运行状况通知,因此我们将通过创建与 EventBridge 规则匹配的 EventBridge 事件来触发工作流程。示例存储库中有两个事件,一个用于连接到 Amazon ECS 服务的任务,另一个用于独立任务。
- 在你的 Slack 工作区中,你现在应该看到两条 Slack 通知,每个测试事件对应一个。
清理
要清理示例演练,请使用 亚马逊云科技 SAM CLI 删除
$
sam CLI 删除 CloudFormation 堆栈 。
结论
在这篇博客文章中,我们深入探讨了 亚马逊云科技 Fargate 任务停用流程。我们已经展示了如果客户想要控制从收到通知到停用之间的时间,可以如何调整任务停用等待期。最后,我们展示了客户如何使用亚马逊 EventBridge 和 亚马逊云科技 Lambda 捕获任务停用通知。要了解有关 亚马逊云科技 Fargate 任务停用的更多信息,请参阅 A
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。