LoginSignup
1
2

More than 5 years have passed since last update.

[JAWS-UG CLI] CloudFormation:#4 テンプレートの検査

Posted at

この手順の目的

CloudFormationのテンプレートを検査(バリデート)します。

作業対象

  • CloudFormationテンプレート

標準時間

8分

前提条件

作業権限

CloudFormationへの権限

CloudFormationに対してフル権限があること。

作業環境

AWS CLIのバージョン

以下のバージョンで動作確認済

  • AWS CLI 1.11.102
コマンド
aws --version

結果(例):

  aws-cli/1.11.102 Python/2.7.12 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.5.60

バージョンが古い場合は最新版に更新しましょう。

コマンド
sudo -H pip install -U awscli

開始条件

作業に必要なモノ・情報

作業開始には、以下が全て揃っていることが必要です。

  • 設定ファイル用ディレクトリ

    • 今回は"${HOME}/tmp/conf-cloudformation"を設定ファイルディレクトリとします。
ls ${HOME}/tmp/conf-cloudformation
  • 存在しない場合は作成します。
mkdir -p ${HOME}/tmp/conf-cloudformation
  • テンレートファイル

    • 検査の対象となるCloudFormationテンプレートファイルです。
    • 今回は"BasicWebServerInVPC.template"とします。

0. 準備

まず変数の確認をします。

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}
        DIR_CONF:            (0.3) ${DIR_CONF}
        FILE_INPUT:          (0.4) ${FILE_INPUT}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <CloudFormationのフル権限が許可されているプロファイル>
  AWS_DEFAULT_REGION:  (0.2) ap-northeast-1
  DIR_CONF:            (0.3) ${HOME}/tmp/conf-cloudformation
  FILE_INPUT:          (0.4) ${HOME}/tmp/conf-cloudformation/BasicWebServerInVPC.template

変数が入っていない、適切でない場合は、それぞれの手順番号について作業を行います。

0.1. プロファイルの指定

プロファイルの一覧を確認します。

コマンド
cat ~/.aws/credentials \
       | grep '\[' \
       | sed 's/\[//g' | sed 's/\]//g'

結果(例):

  iamFull-prjz-mbpr13
  <CloudFormationのフル権限が許可されているプロファイル>
変数の設定
export AWS_DEFAULT_PROFILE='<CloudFormationのフル権限が許可されているプロファイル>'

0.2. リージョンの決定

変数の設定
export AWS_DEFAULT_REGION='ap-northeast-1'

0.3. 設定ファイルディレクトリの指定

変数の設定
DIR_CONF="${HOME}/tmp/conf-cloudformation"

0.4. テンプレートファイル名の指定

変数の設定
FILE_INPUT="${DIR_CONF}/BasicWebServerInVPC.template"   && echo ${FILE_INPUT}

再確認

設定されている変数の内容を再確認します。

変数の確認
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}
        DIR_CONF:            (0.3) ${DIR_CONF}
        FILE_INPUT:          (0.4) ${FILE_INPUT}

ETX

結果(例):

  AWS_DEFAULT_PROFILE: (0.1) <CloudFormationのフル権限が許可されているプロファイル>
  AWS_DEFAULT_REGION:  (0.2) ap-northeast-1
  DIR_CONF:            (0.3) ${HOME}/tmp/conf-cloudformation
  FILE_INPUT:          (0.4) ${HOME}/tmp/conf-cloudformation/BasicWebServerInVPC.template

1. 事前作業

1.1. 作業対象の状態確認

設定ファイル用ディレクトリが存在することを確認します。

コマンド
ls -d ${DIR_CONF}

結果(例):

  <ディレクトリのフルパス名>

検査しようとしているcloudformationテンプレートファイル
"BasicWebServerInVPC.template"が存在することを確認します。

コマンド
ls -1 ${FILE_INPUT}

結果:

  ${HOME}/tmp/conf-cloudformation/BasicWebServerInVPC.template

2. 本作業

2.1. テンプレートのバリデーション

コマンド
aws cloudformation validate-template \
        --template-body file://${FILE_INPUT}

結果:

  (テンプレートの出力設定に応じた出力)

2.2. 結果の取得

変数の設定
RESULT_VALIDATION=$?

3. 事後作業

cloudformationテンプレート"BasicWebServerInVPC"が有効であることを確認します。

コマンド
echo ${RESULT_VALIDATION}

完了

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2