更新 Amazon ECS Express Mode 服务
Express Mode 服务通过为联网、负载均衡和 Application Auto Scaling 提供可配置的选项,并协调这些服务之间的更改,简化了服务更新过程。
您可以更新 Express Mode 服务以修改容器映像、调整资源分配或更改配置设置。将使用金丝雀部署来部署更新,通过基于警报的回滚警报保持可用性。
部署行为
Express Mode 服务默认使用金丝雀部署来确保安全更新和快速回滚:
-
创建一个新环境,并使用您的更改部署任务
-
5% 的流量转移到新环境
-
如果在 3 分钟内有 2 个数据点的 4xx 和 5xx 错误百分比之和大于 1,则会触发基于警报的回滚
-
运行状况检查验证新任务是否正常
-
3 分钟烘焙时间后,100% 的流量将转移到新环境
-
3 分钟烘焙时间进行监控后,旧任务会逐渐停止并被替换
有关更多信息,请参阅 Amazon ECS 金丝雀部署。
过程
在 https://console.aws.amazon.com/ecs/v2
打开控制台。 -
在导航窗格中,选择集群。
-
在集群页面上,选择包含您的 Express Mode 服务的集群的名称。
-
在集群详细信息页面上,选择服务选项卡。
-
配置一个筛选条件以查看您的 Express Mode 服务。对于筛选资源管理类型,请选择 ECS。
Express Mode 服务的名称旁边有一个 Express 徽章。
-
在配置下:
-
指定要用于您的应用程序的映像。对于映像 URI,输入您的映像的 URI。要浏览您的 Amazon ECR 映像,请选择浏览 ECR 映像,然后执行以下操作:
-
对于私有存储库,请选择 Amazon ECR 私有存储库。
对于映像,请选择您的映像。
选择如何识别映像。对于按以下方式选择映像,请选择以下选项之一:
-
AWS 建议您选择映像摘要。
-
要使用标签,请选择映像标签,然后选择标签。
-
-
-
要使用私有注册表,请选择私有注册表。然后,对于 Secrets Manager ARN 或名称,输入您在先决条件中创建的 Secrets Manager ARN。
-
对于任务执行角色,请选择角色或创建新角色并刷新。当您需要添加其他权限时,可以更新任务执行角色。
-
-
在其他配置下,自定义您的服务。
-
在容器下:
-
对于容器端口,更新您的应用程序侦听的端口(默认值为 80)。
-
对于运行状况检查路径,更新运行状况检查的路径(例如,
/health)。
-
-
在环境变量下,添加应用程序所需的环境变量的键值对:
-
对于键,请键入环境变量名称。
-
对于值类型,请选择环境变量或密钥。
-
对于值或值来自,输入值或参考。
-
要根据需要添加更多变量,请选择添加环境变量。
-
-
对于命令,根据需要输入自定义命令来覆盖 Docker CMD 指令。
-
对于任务角色,添加一个 IAM 角色来向在容器中运行的应用程序授予权限。这允许您的应用程序对 AWS 服务进行 API 调用。
-
在计算下:
-
对于 CPU,更新任务的 vCPU 分配(例如,1 个 vCPU)。
-
对于内存,更新任务的内存分配(例如,2 GB)。
-
-
在自动扩缩下:
-
对于 ECS 服务指标,选择要扩展的指标(例如,ECS 服务平均内存利用率或每个目标的请求计数)。
-
对于目标值,输入扩展的目标(例如,60 或 1000)。
-
对于最小任务数和最大任务数,更新扩展限制。
-
-
在日志下:
-
对于 Amazon CloudWatch 日志组,更新您的应用程序日志的日志组名称。请注意,这不会移动现有日志,而是从新的服务修订开始写入日志。
-
对于 Amazon CloudWatch 日志流前缀,输入日志流的新前缀。
-
-
-
选择更新以更新您的 Express Mode 服务。
使用自定义任务定义进行更新
通过指定 taskDefinitionArn 参数,您可以使用自定义任务定义来更新 Express Mode 服务。Express Mode 按原样使用您的任务定义,并继续管理基础设施的其余部分。
在后续更新中,您可以执行以下任一操作:
创建任务定义的新修订版并更新
taskDefinitionArn。Express Mode 使用新修订版进行下一次服务部署。直接更新 Express Mode 参数
对于与任务定义无关的参数(例如
healthCheckPath、networkConfiguration或scalingTarget),Express Mode 会在不修改任务定义的情况下应用更改。对于与任务定义相关的参数(例如使用
primaryContainer或cpu/memory的映像、CPU 或内存),Express Mode 会根据您的更改创建新的托管任务定义,同时保留其他任务级配置。
要使用自定义任务定义进行更新( Amazon ECS 控制台)
打开 Amazon ECS 控制台并导航到 Express Mode 服务。
选择更新服务旁边的下拉箭头,然后选择使用自定义任务定义更新。
对于任务定义系列,选择现有的任务定义系列。要创建新的任务定义,选择任务定义链接。
对于任务定义修订版,选择要使用的修订版,或留空以使用最新的修订版。
(可选)展开其他配置以更新运行状况检查路径、网络或自动扩缩设置。
选择更新。
以下 AWS AWS CLI 命令使用自定义任务定义更新您的 Express Mode 服务:
aws ecs update-express-gateway-service \ --service-arn arn:aws:ecs:us-west-2:123456789012:service/default/my-service \ --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:4
注意
如果您是首次使用 CloudFormation 并添加 taskDefinitionArn 到 Express Mode 服务,请先重新部署堆栈一次。这确保了回滚兼容性。