使用cloudformation中的标签访问AWS System Manager参数存储

时间:2020-04-16 22:57:34

标签: amazon-web-services amazon-cloudformation ssm aws-parameter-store

对于单个键,由于参数存储保留了历史记录,因此我在历史记录中具有多个值。

示例cloudformation脚本:

Parameters: {
        "P1": {
            "Description": "parameter",
            "Type": "AWS::SSM::Parameter::Value<String>",
            "Default": "KEY_NAME:VERSION"
        }
}

我可以执行上述操作,即键名:版本

我想使用标签而不是版本来访问参数。

如何使用此方法或其他方法完成此操作?

2 个答案:

答案 0 :(得分:0)

在这种情况下,您can't使用标签:

CloudFormation 不支持在动态引用中使用参数标签或公共参数。

答案 1 :(得分:0)

我认为,如果您使用宏,则可以解决。使用宏,您可以调用一个lambda来从参数存储中获取所需的确切值,然后在模板中执行转换并捕获所需的值。

例如,在这里,我将一些存储在参数存储区中的环境变量写入ECS任务定义中。我的宏是MacroEnvVars

    Fn::Transform:
        Name: MacroEnvVars
        Parameters:
          Prefix: MSX
          Environment: !Ref Environment
          EnvVarsLocation: !Ref EnvVarsLocation

然后我的宏返回已更新和修改的模板,并使用参数存储中的env var执行部署

请在此处检查in aws documentation