BETA

AWS CloudFormation練習帖:スタックの出力値を利用する

投稿日:2019-07-19
最終更新:2019-07-19

何をする?

  • CloudFormationで作成したリソースのIDを参照したい場合、同一のテンプレート内であれば!Refで参照できていたが、別のテンプレートになるとパラメータで指定する必要があり面倒だった
  • 実は『スタックの出力値のエクスポート』ということができるらしく、これを利用すればパラメータで受け取る必要がないらしい

やってみた

VPCを作成

テンプレートを作成(VPC)

テンプレートにOutputsを追加して、外部のテンプレートから参照したい値をエクスポートできるようにします

AWSTemplateFormatVersion: "2010-09-09"  
Description: "Create VPC"  
Resources:  
  # VPCを作成  
  VPC:  
    Type: "AWS::EC2::VPC"  
    Properties:  
      CidrBlock: "10.0.0.0/16"  
      Tags:  
        - Key: "Name"  
          Value: "MyVPC"  
# ここを追加(作成したVPCのIDをMyVpcIdという名前でエクスポート)  
Outputs:  
  VpcId:  
    Value: !Ref VPC  
    Export:  
      Name: MyVpcId  

実行(VPC)

スタック作成が完了後、【エクスポート】に、Outputsで指定したMyVpcIdがエクスポートされています

テンプレートを作成(サブネット)

Outputsでエクスポートした値を、ImportValueで参照します

AWSTemplateFormatVersion: "2010-09-09"  
Description: "Create Subnet"  
Resources:  
  # Public Subnetを作成  
  PublicSubnetA:  
    Type: "AWS::EC2::Subnet"  
    Properties:  
      # エクスポートした値を参照  
      VpcId: !ImportValue MyVpcId  
      CidrBlock: "10.0.10.0/24"  
      AvailabilityZone: "ap-northeast-1a"  
      Tags:  
        - Key: "Name"  
          Value: "PublicSubnetA"  

実行(サブネット)

パラメータは宣言していないので特に何も指定せずに実行します

エクスポートしたVPCIDを参照しているので無事に作成が完了しました

結果確認

ちゃんとVPC用のテンプレートから作成したVPC(MyVPC)にサブネットが作成されました

参考情報

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

AWSやAzureについて勉強したことをつらつらと。 基本的には未来の自分に向けたメモ的な何か。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!