ハンズオン(簡易版): CFnテンプレート入門(SNS::Subscription)

2.2. CloudFormationテンプレートのチェック (handson-cli-cfn-sns-Subscription)

手順の目的 [why]

CloudFormationテンプレート"handson-cli-cfn-sns-Subscription"をチェックします。

設定値の指定

設定値の指定

手順に必要な設定値を変数に格納をします。

0. リージョンの指定

リージョンを指定します。

環境変数の設定:

export AWS_DEFAULT_REGION='ap-northeast-1'

1. CloudFormationテンプレートファイル名

CloudFormationテンプレートファイルが存在するディレクトリ名を指定します。

変数の設定:

DIR_CLOUDFORMATION_TEMPLATE="${HOME}/environment/conf-handson-cli-cfn-sns-Subscription"

CloudFormationテンプレートファイル名を指定します。

変数の設定:

CLOUDFORMATION_TEMPLATE_NAME='handson-cli-cfn-sns-Subscription'

変数の設定:

FILE_CLOUDFORMATION_TEMPLATE="${DIR_CLOUDFORMATION_TEMPLATE}/${CLOUDFORMATION_TEMPLATE_NAME}.template" \
  && echo ${FILE_CLOUDFORMATION_TEMPLATE}

結果(例):

${HOME}/environment/conf-handson-cli-cfn-sns-Subscription/handson-cli-cfn-sns-Subscription.template

設定値の確認

各変数に正しい設定値が格納されていることを確認しながら保存します。

変数の確認:

cat << END

  # 0. AWS_DEFAULT_REGION:"ap-northeast-1"
       AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

  # 1. FILE_CLOUDFORMATION_TEMPLATE:"${HOME}/environment/conf-handson-cli-cfn-sns-Subscription/handson-cli-cfn-sns-Subscription.template"
       FILE_CLOUDFORMATION_TEMPLATE="${FILE_CLOUDFORMATION_TEMPLATE}"

END

下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

CloudFormationテンプレートのバリデーションチェック

CloudFormationテンプレートのバリデーションチェックをします。

変数の確認:

cat << END

  # FILE_CLOUDFORMATION_TEMPLATE:"${HOME}/environment/conf-handson-cli-cfn-sns-Subscription/handson-cli-cfn-sns-Subscription.template"
    FILE_CLOUDFORMATION_TEMPLATE="${FILE_CLOUDFORMATION_TEMPLATE}"

END

コマンド:

aws cloudformation validate-template \
  --template-body file://${FILE_CLOUDFORMATION_TEMPLATE}

結果(例):

{
  "Description": "Template for handson-cli-cfn-sns-Subscription.",
  "Parameters": []
}

バリデーション結果の取得

バリデーションコマンドの戻り値を取得します。

変数の設定:

RESULT_VALIDATION=$?

完了確認

「CloudFormationテンプレート"${HOME}/environment/conf-handson-cli-cfn-sns-Subscription/handson-cli-cfn-sns-Subscription.template"が有効である。」ことを確認します。

コマンド:

echo ${RESULT_VALIDATION}

結果:

0

手順の完了

(参考) マネジメントコンソールの確認

(なし)