我有Yaml格式的Cloudformation模板。 该模板由Ansible Jinja2渲染。
我需要找到一种方法来添加对模板中某些元素的验证。像这样的东西(“ if”语句是我想要获得的伪代码):
Parameters:
EnvironmentType:
Default: {{profile}}
Mappings:
Environments:
dev:
DbSnapshotArn: ""
test:
DbSnapshotArn: "AAA"
Type: AWS::RDS::DBInstance
Properties:
{% if Mappings.Environments.{{profile}}.DbInstanceClass %}
DBSnapshotIdentifier: !FindInMap [Environments, !Ref 'EnvironmentType', DbSnapshotArn]
{% endif %}
有可能吗?
答案 0 :(得分:0)
如果Mappings.Environments.{{profile}}.DbInstanceClass
引用模板中的内容,则不会。
但是,如果您定义这样的变量:
Mappings:
Environments:
Dev:
DbInstanceClass: "..."
还有另一个包含profile
值的变量,然后可以在模板内部创建一个if
语句,如下所示:
{% if Mappings.Environments[profile].DbInstanceClass is defined %}
...
{% endif %}
另请参阅: