如何在 CloudFormation 模板中使用可选的 Parameter Store 参数?
How to use optional Parameter Store parameters in a CloudFormation template?
我想让 CloudFormation 在 Parameter Store 中查找特定参数 - 如果找不到,则查找其他参数。
实际用例是为不同的分支部署堆栈,我们希望所有分支都有顶级参数,可以选择通过创建特定于分支的参数来覆盖这些参数。像这样:
dev-param = 120 <-- top-level, applies if branch-specific parameter doesn't exist
dev-param.mybranch = 60 <-- branch-specific parameter
已经尝试了几种方法,但在为这两种方法部署堆栈时出现错误 - 见下文。
尝试使用 dynamic references 时:
Parameters: [ssm:dev-param.mybranch] cannot be found.
尝试使用 CloudFormation 时 SSM Parameter Types。
Template format error: Every Default member must be a string.
对于后者,Default:
字段指定参数存储密钥名称。这需要从其他 CloudFormation 参数动态生成,例如有一个环境类型参数,因此开发密钥名称以 dev-
开头,生产密钥名称以 prod-
.
开头
还有其他方法可以实现吗?
没有 custom resource or a macro 就做不到。
我想让 CloudFormation 在 Parameter Store 中查找特定参数 - 如果找不到,则查找其他参数。
实际用例是为不同的分支部署堆栈,我们希望所有分支都有顶级参数,可以选择通过创建特定于分支的参数来覆盖这些参数。像这样:
dev-param = 120 <-- top-level, applies if branch-specific parameter doesn't exist
dev-param.mybranch = 60 <-- branch-specific parameter
已经尝试了几种方法,但在为这两种方法部署堆栈时出现错误 - 见下文。
尝试使用 dynamic references 时:
Parameters: [ssm:dev-param.mybranch] cannot be found.
尝试使用 CloudFormation 时 SSM Parameter Types。
Template format error: Every Default member must be a string.
对于后者,Default:
字段指定参数存储密钥名称。这需要从其他 CloudFormation 参数动态生成,例如有一个环境类型参数,因此开发密钥名称以 dev-
开头,生产密钥名称以 prod-
.
还有其他方法可以实现吗?
没有 custom resource or a macro 就做不到。