首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Cloudformation: Fn::GetAtt Fn::ImportValue

AWS Cloudformation: Fn::GetAtt Fn::ImportValue
EN

Stack Overflow用户
提问于 2021-06-28 18:20:09
回答 1查看 579关注 0票数 1

我有一个堆栈来创建一个VPC。

此堆栈导出名为VPCID的VPC ID的输出。像这样的厕所。

代码语言:javascript
复制
Outputs:

  Output0:
    Description: The ID of the VPC 
    Value: !Ref VPC0
    Export:
      Name: VPCID

我可以将输出导入到子堆栈中。

代码语言:javascript
复制
  sghttps:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: 'HTTPS'
      GroupName: https
      SecurityGroupIngress:
        - FromPort: 443 
          ToPort: 443 
          IpProtocol: tcp 
          CidrIp: '0.0.0.0/0'
          Description: 'HTTPS from EVERYWHERE'
      SecurityGroupEgress:
        - FromPort: 0
          ToPort: 0
          IpProtocol: '-1'
          CidrIp: '0.0.0.0/0'
      VpcId: !ImportValue VPCID
      Tags:
        - Key: CF
          Value: true

现在,我需要访问子堆栈中这个VPC的属性CidrBlock

像这样的人。

代码语言:javascript
复制
  sgmongodb:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: 'MONGODB'
      GroupName: mongodb
      SecurityGroupIngress:
        - FromPort: 27017
          ToPort: 27017
          IpProtocol: tcp 
          CidrIp: !ImportValue VPCID.CidrBlock
          Description: 'MongoDB from our VPC TCP'

或者像这样。

代码语言:javascript
复制
  sgmongodb:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: 'MONGODB'
      GroupName: mongodb
      SecurityGroupIngress:
        - FromPort: 27017
          ToPort: 27017
          IpProtocol: tcp 
          CidrIp: !ImportValue 'Fn::GetAtt':
            - VPCID
            - CidrBlock
          Description: 'MongoDB from our VPC TCP'

我知道CidrBlock的价值是可以导出的。

代码语言:javascript
复制
Outputs:

  Output0:
    Description: The ID of the VPC 
    Value: !Ref VPC0
    Export:
      Name: VPCID


  Output1:
    Description: CidrBlock
    Value: !GetAtt VPC0.CidrBlock                                                                                        
    Export:
      Name: VPCIDCidrBlock

但是,可定位是否只传递主VPS (在本例中为VPCID)资源,并在子堆栈中获取属性CidrBlock

我找不到严谨的语法。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-28 21:33:56

但是,可定位是否只传递主VPS (在本例中为VPCID)资源,并在子堆栈中获取属性CidrBlock?

不,没有子模块中的定制资源。这样的资源将以lambda函数的形式出现,它将VPCID作为输入参数,使用AWS查询VPC的CIDR范围,并将其返回到子堆栈以供进一步使用。

如果您不想创建自定义资源,则还必须导出CIDR范围以及所需的任何其他信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68168326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档