2017-03-28 7 views
2

私は簡単な質問があります。私は、雲の形成における値のエクスポート/インポートをテストしています。AWS/Cloudformation:パラメータ値を別のスタック(YAML)にエクスポート/インポートする方法

質問:別のスタックからリンクされた条件に基づいてリソースを作成する方法はありますか?

私は、他のスタックから値をインポートする必要があると思うが、これは私の「輸出テストスタック」であるか....

AWSTemplateFormatVersion: '2010-09-09' 
 

 
Description: Export 
 

 
Parameters: 
 
    EnvType: 
 
    Description: How many Instances you want to deploy? 
 
    Default: two 
 
    Type: String 
 
    AllowedValues: 
 
     - two 
 
     - three 
 
    ConstraintDescription: must specify number of deployed Instances 
 

 
Conditions: 
 
    Deploy3EC2: !Equals [ !Ref EnvType, three ] 
 
     
 
Resources: 
 
    Ec2Instance1: 
 
    Type: AWS::EC2::Instance 
 
    Properties: 
 
     InstanceType: t2.micro 
 
     SecurityGroupIds: 
 
     - sg-5d011027 
 
     ImageId: ami-0b33d91d 
 
    Ec2Instance2: 
 
    Type: AWS::EC2::Instance 
 
    Properties: 
 
     InstanceType: t2.micro 
 
     SecurityGroupIds: 
 
     - sg-5d011027 
 
     ImageId: ami-0b33d91d 
 
    Ec2Instance3: 
 
    Type: AWS::EC2::Instance 
 
    Condition: Deploy3EC2 
 
    Properties: 
 
     InstanceType: t2.micro 
 
     SecurityGroupIds: 
 
     - sg-5d011027 
 
     ImageId: ami-0b33d91d 
 

 
     
 
Outputs: 
 
    EC2Conditions: 
 
    Description: Number of deployed instances 
 
    Value: !Ref EnvType 
 
    Export: 
 
     Name: blablabla

を知りません

これは

AWSTemplateFormatVersion: '2010-09-09' 
 

 
Description: Import 
 
     
 
Resources: 
 
    Ec2Instance1: 
 
    Type: AWS::EC2::Instance 
 
    Properties: 
 
     InstanceType: t2.micro 
 
     SecurityGroupIds: 
 
     - sg-7309dd0a 
 
     ImageId: ami-70edb016 
 
    Ec2Instance2: 
 
    Type: AWS::EC2::Instance 
 
    Condition: ?????? <<<<<<<<< 
 
    Properties: 
 
     InstanceType: t2.micro 
 
     SecurityGroupIds: 
 
     - sg-7309dd0a 
 
     ImageId: ami-70edb016
私の "インポート・テスト・スタック" であります

これは、クロススタック参照のことだので、私は、私は以前、「輸出・テスト・スタック」の3つのインスタンスを展開することを選択した場合のみ、「インポート・テスト・スタック」でEc2Instance2を展開します。これを行う方法?私は3つのインスタンスを展開することを選択した場合

だから、私は

私は2つを展開することを選択した場合、それは「インポート・スタック」でインスタンスを1つだけ展開する、別の2つのインスタンスを展開し、「インポート・スタック」で条件を使用したいです

どのように条件が動作しているのかわかりませんが、方法を見つけることができない、相互参照スタックでの使用方法を知っています。

私はそれが愚かな例だと知っていますが、私はそれを可能な限り単純なテンプレートとしてテストしたかったのです。分離されたスタックを続行するか、別のスタックへの入力として1つのスタックからの出力を使用することができ、ネストされたスタックでnested stack.

を作成するためにそれらを組み合わせる:

答えて

0

次の2つの選択肢があります。

別々のスタックを使用し続ける場合は、Fn::ImportValueを使用して、別のスタックからエクスポートされた出力値をインポートします。

両方の角度はExporting Stack Output Valuesページでカバーされています。また、Fn::ImportValueを選択すると、cross-stack reference walkthroughが役に立ちます。

+0

Fn :: ImportValueは私にとって意味がありますが、条件をインポートする方法はまだ見つかりませんでした。なぜなら、条件は単純な文字列でなければならないからです。あるいは、条件をエクスポートして(おそらく出力経由で)どのようにしてその条件を他のスタックにインポートするかの簡単な例を教えてください。 –

関連する問題