amazon-web-services - 如果尚未创建新的 SSM 参数,如何创建 AWS Cloud Formation 条件?
问题描述
任何人都在 Cloudformation 模板中使用了 SSM 参数存储参数“如果之前没有创建它,则创建或不执行任何操作”的条件,例如 Cloudformation 中的条件?
我已经尝试了很多方法,但没有运气。也搜索它,但没有真正的工作。
我在真正的 CF 模板之外尝试过的最简单的方法是这样,但不起作用。AWS Cloudformation 部分没有详细的文档。
Parameters:
DAXClusterUrl:
Description: DAX Cluster Url
Type: 'AWS::SSM::Parameter::Name<String>'
Default: "/testservice/dev/AWS_CLUSTER_ENDPOINT"
Conditions:
CreateDAXClusterUrlParameter: !Not [!Equals ["", !Ref DAXClusterUrl]]
Resources:
DAXClusterUrlParameter:
Condition: CreateDAXClusterUrlParameter
Type: 'AWS::SSM::Parameter'
Properties:
Name: "/testservice/dev/AWS_CLUSTER_ENDPOINT"
Type: String
Value: "TestURL"
Description: '-'
解决方案
我认为不可能做你在这里尝试的事情。Cloudformation 仅允许非常有限类型的编程和条件语句。
根据您要实现的目标,您可以使用一些解决方法。例如,如果您尝试这样做,因为您需要多次部署堆栈,您可以手动创建 SSM 参数或在不同的 CFN 堆栈中创建并将其作为参数传递。或者,如果您无论如何要在单独的 CFN 堆栈中创建 SSM 参数,则可以将其添加到outputs
模板部分,然后使用该Fn::ImportValue
方法创建跨堆栈引用。
编辑
在 OP 发表评论后,我进行了更多研究,虽然评论中的链接仅强制参数的值以某种方式出现,但动态引用可能会在此处提供解决方案。
推荐阅读
- javascript - 从 Woocommerce get_customer_location Ajax 事件中删除
- mysql - 插入选择 mariadb 查询
- css - 来自导入的 CSS 文件时未应用 CSS 样式
- php - 如何使用单个 sql 查询更新三个或更多表
- vue-cli-3 - vue-cli 生成的单元测试抛出异常
- angular - Web api 绑定是 Angular 中的 Object 对象
- python - 矩阵及其近似值之间的 Frobenius 范数问题,使用 Python 实现的 SVD
- cassandra - Cassandra 复制因子
- javascript - 根据另一个下拉列表填充一个下拉列表并获取“值”而不是显示值的下拉列表
- ios - Xcode 的 Build Options 中的 $VALIDATE_PRODUCT 标志做了什么样的验证?