在嵌套的cloudformation堆栈中上游共享价值?

时间:2018-09-07 15:40:24

标签: amazon-cloudformation

是否有某种方法可以将值从子堆栈传递到父堆栈?我所发现的只是传递值,但从不传递值,不幸的是,这不符合我的堆栈体系结构。我可以将交叉引用与eXport / Import结合使用,但如果可能的话,宁愿保留嵌套堆栈。

1 个答案:

答案 0 :(得分:0)

您绝对可以从子堆栈中收集输出值,并在父堆栈中使用它们。

例如:

# parent stack
AWSTemplateFormatVersion: 2010-09-09
Resources:
  SomeChildStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      Parameters:
        AWS CloudFormation Stack Parameters
      TemplateURL: !Ref SomeTemplateUrl

  SomeOtherResource:
    Type: AWS::AnyOther::Resources
    Properties:
      SomeProperty: !Ref SomeChildStack.Outputs.MyOutput

SomeChildStack中:

# The template used for SomeChildStack
AWSTemplateFormatVersion: 2010-09-09
Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      AccessControl: PublicRead
      LoggingConfiguration:
        DestinationBucketName: !Ref 'LoggingBucket'
        LogFilePrefix: testing-logs
Outputs:
  MyOutput:
    Value: !Ref 'S3Bucket'
    Description: Name of the sample Amazon S3 bucket.

要记住的棘手的事情是在引用AWS::CloudFormation::Stack时添加Outputs

请注意,这将使SomeOtherResource依赖于SomeChildStack,因此在创建SomeOtherResource之前不会创建SomeChildStack