amazon-web-services - Cloudformation 拆分和导入值

标签 amazon-web-services parameters aws-cloudformation

我在 CloudFormation 中有 2 个堆栈。一种是创建一个带有几个子网的 vpc,这些子网将被导出以便在其他堆栈中使用。这个想法是让这些子网在其他堆栈中使用。 vpc 堆栈正确导出值,但我无法将它们导入到第二个堆栈中,因为它使用字符串列表。

堆栈 1:

  PrivateSubnets:
    Description: "A list of the public subnets"
    Value: !Join [ ",", [ !Ref PrivateSubnet1, !Ref PrivateSubnet2 ]]
    Export:
      Name: !Sub "${StagingArea}-PrivateSubnets"
  
  PublicSubnet1:
    Description: "Reference to the publi subnet in the 1st Availability Zone"
    Value: !Ref PublicSubnet1

  PublicSubnet2: 
    Description: "A reference to the public subnet in the 2nd Availability Zone"
    Value: !Ref PublicSubnet2

  PrivateSubnet1:
    Description: "A reference to the private subnet in the 1st Availability Zone"
    Value: !Ref PrivateSubnet1
    Export:
      Name: !Sub "${StagingArea}-PrivateSubnet1"
  PrivateSubnet2: 
    Description: "A reference to the private subnet in the 2nd Availability Zone"
    Value: !Ref PrivateSubnet2
    Export:
      Name: !Sub "${StagingArea}-PrivateSubnet2"

当我尝试将 ImportValue 导入第二个堆栈时,它不起作用。下面的堆栈 2:

  DbSubnetGroup:
    Type: AWS::RDS::DBSubnetGroup
    Properties:
      DBSubnetGroupDescription: !Sub "${StagingArea} RDS DB Subnet Group"
      SubnetIds: 
        - !ImportValue 'Fn::Sub': '{$StagingArea}-PrivateSubnet1'
        - !ImportValue 'Fn::Sub': '{$StagingArea}-PrivateSubnet2'

是否可以将从第一个堆栈导出的值放入第二个堆栈?我尝试了各种选择,但似乎都不起作用。

最佳答案

Sub不正确(错误使用$),最好遵循 docs并将语句分成两行:

        - Fn::ImportValue:
            !Sub '${StagingArea}-PrivateSubnet1'
        - Fn::ImportValue:
            !Sub '${StagingArea}--PrivateSubnet2'

关于amazon-web-services - Cloudformation 拆分和导入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67125291/

相关文章:

javascript - 我不想运行函数,只是将其用作参数,但它不断弹出

带有函数参数的Javascript到innerhtml中

一般处理枚举的 Scala 类

amazon-web-services - 如何使用单个 cloudformation 模板创建多个 Elasticbeanstalk 环境

java - application.conf 文件中的 AWS Api 凭证 - 足够安全吗?

amazon-web-services - 将 PySpark 连接到 AWS Redshift 时出错

javascript - Cognito 不会将未经身份验证的用户切换为经过身份验证的用户

amazon-web-services - ECS 和负载均衡器的 Terraform 第一次失败

amazon-web-services - 使用 CloudFormation 将 CloudWatch 添加到堆栈

autoscaling - AWS Autoscale 负载均衡与 Cloudformation