CloudFormation嵌套堆栈输出限制

问题描述 投票:0回答:1

事实:

  • CloudFormation输出限制每个模板的60
  • 我有90种资源要导出,因此我创建了以下结构:
    • [parent_stack.template(包含下面的嵌套堆栈)]
    • stack01.template(包含45个资源及其输出)
    • stack02.template(包含45个资源及其输出)

我的问题:

我需要导出这90个资源,但由于限制,我无法在parent_stack.template中导出它们。

我可以将它们分别导出到它们的stack01.templatestack02.template中,但是由于它们是在CloudFormation创建它们时嵌套的,因此会添加一个随机的字母数字字符串,例如Stack01-1B0HKOV4YRD6A,因此我实际上无法使用逻辑名称从嵌套中导入可以堆叠,但在父容器中除外。

我非常感谢您的帮助。

提前感谢!

amazon-web-services amazon-cloudformation nested-stack
1个回答
0
投票

您可以引用嵌套的输出变量。看一下这个示例草案,这就像一个主要的云形成脚本:

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
© www.soinside.com 2019 - 2024. All rights reserved.