簡體   English   中英

嵌套 CloudFormation - 子模板未拾取參數

[英]Nested CloudFormation - Child template not picking up Parameter

我正在構建一個嵌套 CloudFormation 模板來構建 EKS 集群、節點組和相關角色。 IAM 堆棧構建得很好,當它開始集群堆棧時,它失敗並出現以下錯誤; “參數:模板中不存在 [IAMRoleARN]”。

在 IAM 堆棧中,我為創建的角色 ARN 定義了一個輸出/導出;

 Outputs:
    ClusterRoleArn:
      Value: !GetAtt ClusterRole.Arn
      Description: EKS cluster role ARN
      Export:
        Name: 
          Fn::Sub: "${AWS::StackName}-ClusterRoleArn"

在我的父堆棧中,我將導出作為集群子堆棧參數的一部分導入;

EksClusterStack:
    Type: AWS::CloudFormation::Stack
    Properties:
      TemplateURL: '{bucket name withheld}'
      Parameters:
        EksVpc: !Ref EksStackVpc
        ClusterName: !Ref EksClusterName
        IAMRoleARN:
          Fn::GetAtt:
            - EksIamStack
            - Outputs.ClusterRoleArn
        VpcSecurityGroup: !Ref EksVpcSecurityGroup
        ClusterSubnet1: !Ref EksSubnet1
        ClusterSubnet2: !Ref EksSubnet2

在集群子堆棧中,我設置了一個頂級參數,然后我在資源部分調用它;

Parameters:
  IAMRoleARN:
    Type: String
    Description: ARN of the IAM role created for the cluster in the 
                 EKS IAM stack

Cluster:
  Type: "AWS::EKS::Cluster"
  Properties:
    Name: !Ref ClusterName
    Version: "1.19"
    RoleArn: !Ref IAMRoleARN
    ResourcesVpcConfig:
      SecurityGroupIds:
        - !Ref ClusterControlPlaneSecurityGroup
        - !Ref VpcSecurityGroup
      SubnetIds:
        - !Ref ClusterSubnet1
        - !Ref ClusterSubnet2

非常感謝我可能缺少的任何想法!

如果您只想導出 ARN 交叉堆棧,您的 output 應如下所示:

Outputs:
    ClusterRoleArn:
      Value: !GetAtt ClusterRole.Arn

否則,您將不得不使用

Fn::ImportValue: !Sub ${AWS::StackName}-ClusterRoleArn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM