Cloudformation YAML 模板如果没有按预期工作
Posted
技术标签:
【中文标题】Cloudformation YAML 模板如果没有按预期工作【英文标题】:Cloudformation YAML template if else not working as expected 【发布时间】:2021-10-17 17:55:11 【问题描述】:我有 cloudformation 文件,可以检查是 Apple 添加 IP 还是添加其他 IP。
但是,我想为 Apple 而不是 Apple 添加 IP,而不将 IP 复制到两者。
只要写一次!
尝试执行此操作时,我收到验证错误...
这是我的原始代码 -
SecurityGroupIngress: !If
- IsApple
- - Description: "Its Apple IP"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
- - Description: "It's not Apple IP"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
这就是我想要的改变-
SecurityGroupIngress:
- Description: "Its *All* fruits IPs"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
!If
- IsApple
- - Description: "Its Apple IP"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
- - Description: "It's not Apple IP"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
【问题讨论】:
【参考方案1】:您应该将 !If
移动到 SecurityGroupIngress
数组中:
SecurityGroupIngress:
- Description: "Its *All* fruits IPs"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
- !If
- IsApple
- Description: "Its Apple IP"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
- Description: "It's not Apple IP"
FromPort: X
ToPort: X
IpProtocol: tcp
CidrIp: X.X.X.X
我还没有测试过,但我认为上面应该可以工作。
【讨论】:
以上是关于Cloudformation YAML 模板如果没有按预期工作的主要内容,如果未能解决你的问题,请参考以下文章
如何调试cloudformation模板?策略中的语法错误。 YAML 文件
ruby 将CloudFormation模板从JSON转换为YAML
使用 Python 加载 CloudFormation YAML
AWS IAM Cloudformation YAML 模板错误:不允许使用“空”值