避免用 CloudFormation 替换 TaskDefinition

Avoid replacement of TaskDefinition with CloudFormation

我正在自动化需要通过 cloudformation 创建堆栈的 PR 流程。问题是,根据定义 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html,旧的 TaskDefinition 修订版已被删除以为 new/updated TaskDefinition 腾出位置。有什么办法可以避免更换而只做更新吗?

来自docs

To update a task definition, create a task definition revision. If the task definition is used in a service, you must update that service to use the updated task definition.

这意味着任务定义修订是不可变的,无法创建新修订。

如果您想保留旧版本的任务定义,您可以尝试 UpdateReplacementPolicy,值为 Retain。也许它能够保留旧的修订版。有关详细信息,请查看 CloudFormation docs - UpdateReplacePolicy.

看起来像这样:

AWSTemplateFormatVersion: 2010-09-09
Resources:
  taskdefinition:
    Type: 'AWS::ECS::TaskDefinition'
    UpdateReplacePolicy: Retain
    Properties: {} # Your usual properties here