如何在 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 就做不到。