処理の実行
CloudFormationスタックを作成します。
変数の確認:
cat << END
# CLOUDFORMATION_STACK_NAME:"handson-cli-cfn-iam-AccessKey-stack"
CLOUDFORMATION_STACK_NAME="${CLOUDFORMATION_STACK_NAME}"
# FILE_CLOUDFORMATION_TEMPLATE:"${HOME}/environment/conf-handson-cli-cfn-iam-AccessKey/handson-cli-cfn-iam-AccessKey.template"
FILE_CLOUDFORMATION_TEMPLATE="${FILE_CLOUDFORMATION_TEMPLATE}"
END
コマンド:
aws cloudformation create-stack \
--stack-name "${CLOUDFORMATION_STACK_NAME}" \
--template-body file://${FILE_CLOUDFORMATION_TEMPLATE} \
--capabilities 'CAPABILITY_IAM'
結果(例):
{
"StackId": "arn:aws:cloudformation:ap-northeast-1:<AWSアカウントID>:stack/handson-cli-cfn-iam-AccessKey-stack/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
完了確認
「CloudFormationスタック"handson-cli-cfn-iam-AccessKey-stack"が存在する。」ことを確認します。
コマンド:
aws cloudformation list-stacks \
--query "StackSummaries[? \
StackName == \`${CLOUDFORMATION_STACK_NAME}\` \
&& StackStatus != \`DELETE_COMPLETE\` \
].StackName" \
--output text
結果(例):
handson-cli-cfn-iam-AccessKey-stack
スタックIDを取得します。
コマンド:
cloudformation_stack_id=$( \
aws cloudformation list-stacks \
--query "StackSummaries[? \
StackName == \`${CLOUDFORMATION_STACK_NAME}\` \
&& StackStatus != \`DELETE_COMPLETE\` \
].StackId" \
--output text \
) \
&& echo ${cloudformation_stack_id}
結果(例):
arn:aws:cloudformation:ap-northeast-1:<AWSアカウントID>:stack/handson-cli-cfn-iam-AccessKey-stack/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
「CloudFormationスタック"handson-cli-cfn-iam-AccessKey-stack"のステータスが"CREATE_COMPLETE"になっている。」ことを確認します。
コマンド:
cloudformation_stack_status=$(\
aws cloudformation list-stacks \
--query "StackSummaries[? \
StackName == \`${CLOUDFORMATION_STACK_NAME}\` \
&& StackStatus != \`DELETE_COMPLETE\` \
].StackStatus" \
--output text \
) \
&& echo ${cloudformation_stack_status}
結果(例):
注釈
ステータスがROLLBACKになった場合は、イベントを確認して原因を特定します。
コマンド:
aws cloudformation describe-stack-events \
--stack-name ${CLOUDFORMATION_STACK_NAME}
結果(例):