gpt4 book ai didi

amazon-web-services - 如何使用 CloudFormation 有条件地在 TaskDefinition 内部署 ContainerDefinition?

转载 作者:行者123 更新时间:2023-12-03 07:40:24 25 4
gpt4 key购买 nike

我正在使用 CloudFormation 将一些资源部署到 AWS 中。我想做的是 - 根据条件在 TaskDefinition 内部署(或不部署)ContainerDefinition。

Type: 'AWS::ECS::TaskDefinition'
Properties:
RequiresCompatibilities:
- FARGATE
---Other unimportant properties---
ContainerDefinitions:
- Name: someServiceName
---Unimportant---
- Name: ServiceToDeployBasedOnCondition
Condition: IsProduction (this is defined in Conditions)
---Unimportant---

这是我尝试过的,我收到“资源处理程序返回消息:“模型验证失败(#:不允许使用无关 key [条件]”。

如何绕过这个?这可能吗?

最佳答案

不错的方法。利用条件无疑是满足您的要求的方法。您收到模型验证错误,因为条件必须放置在资源的顶层 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html

# Example obtained from the docs

Resources:
EC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: ami-0ff8a91507f77f867
MountPoint:
Type: 'AWS::EC2::VolumeAttachment'
Condition: CreateProdResources
Properties:
InstanceId: !Ref EC2Instance
VolumeId: !Ref NewVolume
Device: /dev/sdh

解决问题的一种“快速而肮脏”的方法是有两个任务定义(一个用 Condition: IsProduction 触发,另一个不触发)。但是,如果您想以更优雅的方式解决问题(使用单个任务定义),我会看看 CloudFormation 条件函数 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if

关于amazon-web-services - 如何使用 CloudFormation 有条件地在 TaskDefinition 内部署 ContainerDefinition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70246919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com