避免用 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
我正在自动化需要通过 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