2017-11-07 2 views
0

SOとawsフォーラムのいくつかのスレッドに続いて、基本的なネストされたcloudflowの例を取り上げようとしています。ネストされた雲の情報がvpcの作成時にvpcidを取得する

ChildStack01はVPCを作成し、次にChildStack02はサブネットを追加します。しかし、私はエラーの同じタイプを取得いくつかの組合せ、Output 'VpcID' not found in stack

{ 
    "AWSTemplateFormatVersion": "2010-09-09", 


    "Resources": { 
     "ChildStack01": { 
      "Type": "AWS::CloudFormation::Stack", 
      "Properties": { 
       "TemplateURL": "https://s3-eu-west-1.amazonaws.com/cf-templates-1u1ziwem31f87-eu-west-1/xxx", 
       "TimeoutInMinutes": "60" 


      } 
     }, 
     "ChildStack02": { 
      "Type": "AWS::CloudFormation::Stack", 
      "Properties": { 
       "TemplateURL": "https://s3-eu-west-1.amazonaws.com/cf-templates-1u1ziwem31f87-eu-west-1/yyy", 
       "Parameters": { 
        "VpcId" : { "Fn::GetAtt" : [ "ChildStack01", "Outputs.VpcID" ] } 
       }, 
       "TimeoutInMinutes": "60" 
      } 
     } 
    } 

を試した後、私は

"VPC" : { 
     "Description" : "VPC ID", 
     "Type": "AWS::EC2::VPC::Id" 
    } 

とパラメータを追加しようとしたが、その後に列挙されたVPCのための基準値が存在しないようにエラーが発生しましたhttp://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html

作成後にVPC-IDを取得する基本的な方法はありますか?

おかげ アート

答えて

0

あなたが輸出をご覧ください。

Outputs: 
    VpcId: 
    Value: !Ref VPC 
    Export: 
     Name: Unique-VpcId 

あなたはその後、別のスタックにその値をインポートすることができます:

あなたのVPCスタックで

は、エクスポートセクションを作成

VpcId: 
    Fn::ImportValue: Unique-VpcId 

もちろんユニークな輸出名を生成するいくつかの方法を含める必要があります私の例のようにハードコーディングするのではなく、リージョン内で一意でなければなりません。

0

CFテンプレートでVPCを作成し、以下のように使用します。

"Resources": { 
    "VPC": { 
     "Type": "AWS::EC2::VPC", 
     "Properties": { 
     .... 
     } 
    } 
    }, 
"Outputs": { 
    "VPC": { 
     "Description": "VPC", 
     "Value": { 
     "Ref": "VPC" 
     }, 
     "Export": { 
     "Name": { 
      "Fn::Sub": "${AWS::StackName}-VPC" 
     } 
     } 
    } 
    } 
あなたのように、第一CFテンプレートの出力を使用したいCFテンプレートで



"Parameters": { 
     "VPCStackName": { 
      "Description": "Name of VPC CF Stack", 
      "Type": "String", 
      "Default": "SOME_NAME" 
     } 
    }, 
    "Resources": { 
    "Subnet1": { 
     "Type": "AWS::EC2::Subnet", 
     "Properties": { 
     "VpcId": { 
      "Fn::ImportValue": { 
      "Fn::Sub": "${VPCStackName}-VPC" 
      } 
     }, 
     "CidrBlock": { 
      "Ref": "CidrBlockSubnet1" 
     }, 
     "AvailabilityZone": { 
      "Ref": "AZ_NAME" 
     } 
     } 
    } 
    } 
関連する問題