【问题标题】:Cloudformation Split & ImportValueCloudformation 拆分和 ImportValue
【发布时间】:2021-04-16 12:31:55
【问题描述】:

我在 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'

是否可以将第一个堆栈导出的值放入第二个堆栈?我尝试了各种选项,但似乎都没有效果。

【问题讨论】:

  • 我注意到您有一些带有答案的问题,但没有一个答案被接受。接受好的答案不仅是一种好的做法,而且可以帮助他人并消除重复。如果所有答案都没有帮助,那很好,但如果您不接受有帮助的答案,ppl 将来可能会跳过您的问题。
  • @Marcin,对此感到抱歉。我相信我在过去提出了 2 个问题,我也用问题的解决方案回答了自己。不过,我会牢记这一点。
  • ImportValue 和当前问题的进展如何?
  • 现在可以正常使用了,回复你的代码是sn-p。

标签: amazon-web-services parameters amazon-cloudformation


【解决方案1】:

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

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

【讨论】:

  • 你是对的,这是我在添加 $ 符号时的错误。它现在适用于您在上面添加的行。非常感谢您之前对接受正确答案的回答和评论。
猜你喜欢
  • 1970-01-01
  • 2021-04-19
  • 2021-07-17
  • 1970-01-01
  • 2018-05-09
  • 2021-08-10
  • 2018-02-28
  • 2018-09-05
  • 1970-01-01
相关资源
最近更新 更多