gpt4 book ai didi

amazon-web-services - 如何在 AWS CloudFormation 的参数部分添加条件?

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

所以我想做的是,我定义了一个名为 EnvType 的参数,其中包含允许的值测试或生产。

当用户选择这些环境之一测试或生产时应该发生什么,比如说测试那么他应该能够选择另一个名为 InstanceType 的参数,其中允许的值将是创建堆栈时下拉列表中的所有“t”类型实例。

如果用户选择生产作为 EnvType,则名为 InstanceType 的同一参数下允许的值必须是除“t”类型(例如“m”类型)之外的所有实例类型。

同样的情况也适用于 rds。假设用户选择 EnvType 作为测试,则名为 DBInstanceType 的参数下允许的值必须是“db.t”类型实例,否则为“db.r”类型实例。

参数

Parameters:

EnvType:
Default: test
Type: String
AllowedValues:
- production
- test

InstanceType:
Type: String
AllowedValues: !FindInMap
- InstanceTypeMap
- !Ref EnvType
- instanceType

DBInstanceType:
Type: String
AllowedValues: !FindInMap
- InstanceTypeMap
- !Ref EnvType
- dbinstanceType

映射

    InstanceTypeMap:
production:
instanceType: [m1.small, m1.medium, m1.large, m1.xlarge, m2.xlarge, m2.2xlarge, m2.4xlarge]
dbinstancetype: [db.r5.large, db.r5.xlarge]
test:
instanceType: [t1.micro, t2.nano, t2.micro, t2.small, t2.medium, t2.large]
dbinstancetype: [db.t2.small, db.t2.medium, db.t3.small]



资源

Resources:
WebServer:
Type: 'AWS::EC2::Instance'
Properties:
InstanceType: !Ref InstanceType


DBInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: !FindInMap
- MyEnvironmentMap
- !Ref EnvType
- dbinstanceType

我知道模板无效,并且 InstanceType 和 DBInstanceType 参数中允许的值很容易出现错误,但我正在寻找执行此操作的替代方法。

请帮忙!!

最佳答案

简单地说,此类功能在 CloudFormation (CFN) 中不可能。遗憾的是,CFN 中没有其他选择。您必须开发一个自定义解决方案来部署此类模板。

关于amazon-web-services - 如何在 AWS CloudFormation 的参数部分添加条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64500983/

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