繁体   English   中英

AWS Parameter Store 结果作为 CloudFormation 模板中的列表

[英]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 存储桶列表。

更新 #1

为了更好地解释自己,这里是完整的例子:

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像带有AllowedValuesInstanceTypeDefault下拉列表AllowedValues

在此处输入图片说明

文档说明如下:

对于 SSM 参数,reference-key 段由参数名称和版本号组成。

CloudFormation 不支持在动态引用中使用参数标签或公共参数。 参数标签是用户定义的别名,可帮助您管理参数的不同版本。

所以你没有正确引用参数,你应该在模板中包含参数的版本:例如, {{resolve:ssm:/s3/lists:1}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM