Вы можете ссылаться на вложенные выходные переменные. Посмотрите на этот черновой пример, это будет похоже на сценарий формирования основного облака:
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
MyStack C потребляет параметры из MyStackA и MyStackB. MyStack C скрипту потребуется раздел параметров:
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