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

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

手順の目的 [why]

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

設定値の指定

設定値の指定

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

0. リージョンの指定

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

環境変数の設定:

export AWS_DEFAULT_REGION='ap-northeast-1'

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

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

変数の設定:

DIR_CLOUDFORMATION_TEMPLATE="${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment"

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

変数の設定:

CLOUDFORMATION_TEMPLATE_NAME='handson-cli-cfn-ec2-VolumeAttachment'

変数の設定:

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

結果(例):

${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment.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-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment.template"
       FILE_CLOUDFORMATION_TEMPLATE="${FILE_CLOUDFORMATION_TEMPLATE}"

END

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

処理の実行

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

変数の確認:

cat << END

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

END

コマンド:

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

結果(例):

{
    "Parameters": [],
    "Description": "Template for handson-cli-cfn-ec2-VolumeAttachment.",
    "Capabilities": [
        "CAPABILITY_NAMED_IAM"
    ],
    "CapabilitiesReason": "The following resource(s) require capabilities: [AWS::IAM::Role]"
}

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

変数の設定:

RESULT_VALIDATION=$?

完了条件の確認

本手順の主処理は、以下の完了条件を満たしたときに成功したものとします。

完了条件1: CloudFormationテンプレート"${HOME}/environment/conf-handson-cli-cfn-ec2-VolumeAttachment/handson-cli-cfn-ec2-VolumeAttachment.template"が有効である。

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

コマンド:

echo ${RESULT_VALIDATION}

結果:

0

手順の完了

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

(なし)