使用 CloudFormation 更新而不是替换 ECS 任务定义
Updating rather than replacing ECS Task Definition with CloudFormation
在 CloudFormation 中更新 TaskDefinition 时,文档说发生了替换操作 -
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html
有没有办法让它成为一个新的修订版?我应该使用 family 参数吗?有任务定义限制吗?否则我会得到大量不活动的定义。
ContainerDefinitions:
- Name: container
Essential: 'true'
Image: image:tag
PortMappings:
- ContainerPort: 80
HostPort: 80
Protocol: 'tcp'
TaskRoleArn: 'arn:aws:iam::role'
是的,为了将您的更改放入同一任务定义的新修订版中,您应该使用 Family
参数。引用自 official documentation:
Family
The name of a family that this task definition is registered to. A
family groups multiple versions of a task definition.
CloudFormation 仍会将其视为 "replacement" 并将删除旧修订版,但如果您使用 Family
参数,它不会创建新的任务定义。
实际上,参数 Family 如上所述不起作用,即使您通知它,任务定义也被替换了,但我在其他线程 (here) 中看到您可以使用以下 sintaxe 在您的模板,观察 UpdateReplacePolicy 参数
...
"Type": "AWS::ECS::TaskDefinition",
"UpdateReplacePolicy": "Retain",
"Properties": {
....
在 CloudFormation 中更新 TaskDefinition 时,文档说发生了替换操作 - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html
有没有办法让它成为一个新的修订版?我应该使用 family 参数吗?有任务定义限制吗?否则我会得到大量不活动的定义。
ContainerDefinitions:
- Name: container
Essential: 'true'
Image: image:tag
PortMappings:
- ContainerPort: 80
HostPort: 80
Protocol: 'tcp'
TaskRoleArn: 'arn:aws:iam::role'
是的,为了将您的更改放入同一任务定义的新修订版中,您应该使用 Family
参数。引用自 official documentation:
Family
The name of a family that this task definition is registered to. A family groups multiple versions of a task definition.
CloudFormation 仍会将其视为 "replacement" 并将删除旧修订版,但如果您使用 Family
参数,它不会创建新的任务定义。
实际上,参数 Family 如上所述不起作用,即使您通知它,任务定义也被替换了,但我在其他线程 (here) 中看到您可以使用以下 sintaxe 在您的模板,观察 UpdateReplacePolicy 参数
...
"Type": "AWS::ECS::TaskDefinition",
"UpdateReplacePolicy": "Retain",
"Properties": {
....