Cloudformation模板中参数存储中EC2实例类型的动态引用



我很难确定如何直接从参数存储中引用EC2实例类型参数。我到处找,但没有找到。

我可以使用我的方法引用其他参数,比如EC2KeyPair。

我首先使用以下命令在参数存储中创建一个参数。aws ssm put-parameter --name myEC2TypeDev --type String --value "t2.small"

在CF模板中,我定义了InstanceType参数。

"InstanceType" : {
"Description" : "WebServer EC2 instance type",
"Type" : "AWS::SSM::Parameter::Value<String>",
"Default" : "myEC2TypeDev",
"AllowedValues" : [ "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "r5.large", "c5.large", "c5.xlarge", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "g2.2xlarge", "g2.8xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "hi1.4xlarge", "hs1.8xlarge", "cr1.8xlarge", "cc2.8xlarge", "cg1.4xlarge"],
"ConstraintDescription" : "must be a valid EC2 instance type."
}

当我执行模板时,我返回以下错误:

调用UpdateStack时发生错误(ValidationError(操作:参数InstanceType未能满足约束:必须是有效的EC2实例类型。

如果您的资源类型存储在SSM上(如AWS::SSM::Parameter::Value(,则提供的值需要是SSM上的参数名称(如myEC2TypeDev(。因此,您的AllowedValues列表可能会导致冲突并引发错误。

请删除AllowedValues属性,然后重试。

相关内容

最新更新