![](/img/trans.png)
[英]How to use AWS SSM parameter store values in Cloudformation template conditionals?
[英]AWS Parameter Store result as list in CloudFormation template
我正在尝试使用 SSM 参数存储“StringList”动态获取我的 S3 存储桶名称,而不是直接在 CloudFormation 中列出它们。 但是在 CF 模板中,我必须使用 SSM 值,所以当我创建堆栈时,它不会向我显示值,而是向我显示密钥,我也没有成功将 SSM 解析为列表。
脚步:
创建一个参数存储作为 StringList
Name: /s3/lists
Value: sample1,sample2
CloudFormation 模板
Parameters:
myS3Buckets:
Type: AWS::SSM::Parameter::Value<List<String>>
AllowedValues: ['{{resolve:ssm:/s3/lists}}']
然后在我创建堆栈时查看 S3 存储桶列表。
为了更好地解释自己,这里是完整的例子:
Parameters:
InstanceTypeDefault:
Type: String
AllowedValues:
- t1.micro
- t2.nano
- t2.micro
- t2.small
InstanceTypesDynamic:
Type: AWS::SSM::Parameter::Value<List<String>>
AllowedValues:
- /ec2/lists
Resources:
MyInstance:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone: us-east-1a
ImageId: ami-0742b4e673072066f
InstanceType: !Ref InstanceTypesDynamic
在正常情况下,我们设置 AllowedValues 之类的InstanceTypeDefault
但我试图而不是每次都编辑模板,而是通过 API 调用获取列表或将它们放在 SSM Parameter Store 中。
我想让InstanceTypesDynamic
像带有AllowedValues
的InstanceTypeDefault
下拉列表AllowedValues
。
文档说明如下:
对于 SSM 参数,reference-key 段由参数名称和版本号组成。
和
CloudFormation 不支持在动态引用中使用参数标签或公共参数。 参数标签是用户定义的别名,可帮助您管理参数的不同版本。
所以你没有正确引用参数,你应该在模板中包含参数的版本:例如, {{resolve:ssm:/s3/lists:1}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.