从另一个没有输出的 CloudFormation 引用资源?
Ref resource from another CloudFormation without output?
是否可以引用另一个未输出的 CloudFormation 的资源?
例如,在file1.yaml
Resource:
SG1:
Type: AWS::EC2::SecurityGroup
....
而在 file2.yaml 中,我需要参考 SG1
SGMSKClusterIgress6:
Type: AWS::EC2::SecurityGroupIngress
Properties:
SourceSecurityGroupId: SG1 # How to reference SG1 here
GroupId: !ImportValue MySecurityGroup
IpProtocol: tcp
FromPort: 443
ToPort: 443
我知道file1.yaml里面有没有Outputs
,比如
Resource:
SG1:
Type: AWS::EC2::SecurityGroup
....
Outputs:
SG1Output:
Value: !Ref SG1
Export:
Name: File1SG1
我可以在 file2.yaml 中使用它,因为
SourceSecurityGroupId: !ImportValue File1SG1 # SG1 output name
没有输出怎么办?我是否必须修改 file1.yaml 以添加 Outputs
部分并更新配置的产品?
是的,对于根据 CloudFormation 引用资源,您应该使用输出。
如果您无权访问 file1.yaml,您可以在 file2.yaml 中创建一个参数,在其中指定安全组 ID 并在资源创建时引用它
是否可以引用另一个未输出的 CloudFormation 的资源?
例如,在file1.yaml
Resource:
SG1:
Type: AWS::EC2::SecurityGroup
....
而在 file2.yaml 中,我需要参考 SG1
SGMSKClusterIgress6:
Type: AWS::EC2::SecurityGroupIngress
Properties:
SourceSecurityGroupId: SG1 # How to reference SG1 here
GroupId: !ImportValue MySecurityGroup
IpProtocol: tcp
FromPort: 443
ToPort: 443
我知道file1.yaml里面有没有Outputs
,比如
Resource:
SG1:
Type: AWS::EC2::SecurityGroup
....
Outputs:
SG1Output:
Value: !Ref SG1
Export:
Name: File1SG1
我可以在 file2.yaml 中使用它,因为
SourceSecurityGroupId: !ImportValue File1SG1 # SG1 output name
没有输出怎么办?我是否必须修改 file1.yaml 以添加 Outputs
部分并更新配置的产品?
是的,对于根据 CloudFormation 引用资源,您应该使用输出。 如果您无权访问 file1.yaml,您可以在 file2.yaml 中创建一个参数,在其中指定安全组 ID 并在资源创建时引用它