【问题标题】:How can I ref a variable in ImportValue in cloudformation?如何在 cloudformation 中引用 ImportValue 中的变量?
【发布时间】:2021-01-14 10:52:39
【问题描述】:
我有一个 cloudformation 模板,需要根据传入的参数导入一个值。下面是代码。但我不能结合!ImportValue 和!Ref。如何在ImportValue函数中使用EnvironmentName?
Parameters:
EnvironmentName:
Description: An environment name
Type: String
...
VpcConfig:
SecurityGroupIds:
- !ImportValue # how can I reference EnvironmentName
...
【问题讨论】:
标签:
amazon-web-services
amazon-cloudformation
【解决方案1】:
如AWS docs 所示,您可以使用ImportValue 和Sub 来实现您想要的:
VpcConfig:
SecurityGroupIds:
- Fn::ImportValue:
!Sub "${EnvironmentName}"
您可能需要调整缩进以匹配您的模板。
【解决方案2】:
假设Environment 是两个模板中的参数
模板 1 中的安全组:
MySecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupName: !Sub 'My Group - ${Environment}'
GroupDescription: 'my group'
SecurityGroupIngress:
- IpProtocol: 'icmp'
FromPort: '-1'
ToPort: '-1'
CidrIp: '0.0.0.0/0'
从模板 1 导出:
MySecurityGroup:
Description: 'Security Group Test'
Value: !Ref 'MySecurityGroup'
Export:
Name: !Sub 'MySecurityGroup-${Environment}'
导入为
VpcConfig:
SecurityGroupIds:
- Fn::ImportValue: !Sub MySecurityGroup-${Environment}