6

cloudformation 模板中支持对 SSM 参数的动态引用

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html

该文档指出,您可以Use the ssm dynamic reference to include values stored in the Systems Manager Parameter Store of type String or StringList in your templates.

我们正在尝试使用语法在模板中引用 StringList 类型的参数,{{resolve:ssm:parameter-name:version}}并将其解析为模板中的字符串列表(更具体地说,是 EC2 实例的 SecurityGroupId 列表)。这没有奏效,并且文档没有指定如何执行此操作或是否受支持。我们已经尝试过使用,Fn::Split但它似乎在动态值得到解析之前被调用。我们无法在模板的参数部分中使用 SSM 值,该部分对此进行了记录。有谁知道是否有可能需要{{resolve ...一个字符串列表?

4

2 回答 2

5

AWS Support 已回复我关于此问题的请求,并解释说我的问题的答案是否定的,目前不支持。他们的回应全文如下。

目前,CFN 可以采用 StringList 类型,但这样的 StringList 以逗号分隔的字符串值形式返回,从而导致一个长字符串。因此,如果我们需要它成为多个值,例如数组或字符串列表,例如 EC2 实例的 SecurityGroup Id 列表,目前不支持。

话虽如此,我进一步挖掘并发现我们内部将此作为现有功能请求,我已将您的声音添加到该请求中,以帮助获得对该功能的更多关注。我没有 ETA 可以分享,因为服务团队对他们的时间表/工作日志很谨慎。但是,如果/当该功能可用时,应在以下地方公开宣布:

于 2019-04-15T23:29:53.737 回答
4

在等待 AWS 实现{{resolve: ...动态引用的待处理功能请求以解析为“字符串列表”类型时,您可以使用与您要引用的 SSM 参数相对应的默认值的SSM 参数类型来解决此问题:AWS::SSM::Parameter::Value<List<String>>

Parameters:
  SecurityGroups:
    Type: AWS::SSM::Parameter::Value<List<String>>
    Default: security-groups
Resources:
  Type: AWS::EC2::Instance
  Properties:
    SecurityGroupIds: !Ref SecurityGroups
于 2019-07-25T00:35:42.640 回答