事实:
parent_stack.template
(包含下面的嵌套堆栈)]stack01.template
(包含45个资源及其输出)stack02.template
(包含45个资源及其输出)我的问题:
我需要导出这90个资源,但由于限制,我无法在parent_stack.template
中导出它们。
我可以将它们分别导出到它们的stack01.template
和stack02.template
中,但是由于它们是在CloudFormation创建它们时嵌套的,因此会添加一个随机的字母数字字符串,例如Stack01-1B0HKOV4YRD6A
,因此我实际上无法使用逻辑名称从嵌套中导入可以堆叠,但在父容器中除外。
我非常感谢您的帮助。
提前感谢!
您可以引用嵌套的输出变量。看一下这个示例草案,这就像一个主要的云形成脚本:
Description: >
Some desc
AWSTemplateFormatVersion: 2010-09-09
Resources:
MyStackA:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: "mystackA.yml"
Parameters:
ProjectName: "myprojectA"
MyStackB:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: "mystackB.yml"
Parameters:
ProjectName: "myprojectB"
MyStackC:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: "mystackC.yml"
Parameters:
ProjectName: "myprojectC"
OutputFromMyStackA: !GetAtt MyStackA.Outputs.myoutputA
OutputFromMyStackB: !GetAtt MyStackB.Outputs.myoutputB
MyStackC使用MyStackA和MyStackB中的参数。 MyStackC脚本将需要一个参数部分:
Parameters:
OutputFromMyStackA:
Description: param from stack a
Type: String
OutputFromMyStackB:
Description: param from stack b
Type: String
StackA和StackB也需要输出自己的内容
Outputs:
myoutputA:
Description: the myoutputA
Value: !Ref SomeStackAResource ====> this references something inside the script for StackA