処理の実行
CloudFormationスタックの作成
CloudFormationスタックを作成します。
変数の確認:
cat << END
# CLOUDFORMATION_STACK_NAME:"handson-cli-env-stack"
CLOUDFORMATION_STACK_NAME="${CLOUDFORMATION_STACK_NAME}"
# CLOUDFORMATION_TEMPLATE_URL:"https://prototype-handson-cli.s3.ap-northeast-1.amazonaws.com/template-cloudformation/env/_downloads/af69c0991d3f6bdf9f0ebf7ce34cfc64/handson-cli-env-cloudshell.template"
CLOUDFORMATION_TEMPLATE_URL="${CLOUDFORMATION_TEMPLATE_URL}"
END
コマンド:
aws cloudformation create-stack \
--stack-name "${CLOUDFORMATION_STACK_NAME}" \
--template-url ${CLOUDFORMATION_TEMPLATE_URL} \
--capabilities 'CAPABILITY_NAMED_IAM'
結果(例):
{
"StackId": "arn:aws:cloudformation:ap-northeast-1:XXXXXXXXXXXX:stack/handson-cli-env-stack/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
完了確認
「CloudFormationスタック"handson-cli-env-stack"が存在する。」ことを確認します。
コマンド:
aws cloudformation list-stacks \
--query "StackSummaries[? \
StackName == \`${CLOUDFORMATION_STACK_NAME}\` \
&& StackStatus != \`DELETE_COMPLETE\` \
].StackName" \
--output text
結果(例):
スタック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:XXXXXXXXXXXX:stack/handson-cli-env-stack/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
「CloudFormationスタック"handson-cli-env-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}
結果(例):