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