処理の実行
ディストリビューションIDを取得します。
コマンド:
for i in $(
aws cloudfront list-distributions \
--query "DistributionList.Items[].ARN" \
--output text \
); do
j=$( \
aws cloudfront list-tags-for-resource \
--resource ${i} \
--query "Tags.Items[?Key == \`Name\` && Value == \`${CLOUDFRONT_DISTRIBUTION_TAG_NAME}\`].Value" \
--output text \
)
if [ "${j}" == "${CLOUDFRONT_DISTRIBUTION_TAG_NAME}" ]; then \
CLOUDFRONT_DISTRIBUTION_ID=$( \
aws cloudfront list-distributions \
--query "DistributionList.Items[?ARN == \`${i}\`].Id" \
--output text \
)
fi
done \
&& echo ${CLOUDFRONT_DISTRIBUTION_ID}
結果(例):
課題
list-distributionsコマンドがタグ表示できないため、全てのディストリビューションに対してlist-tags-for-resourceコマンドでタグの有無をチェックするしか方法がない。(サポートには未確認)
CloudFrontディストリビューションのETagを取得します。
コマンド:
CLOUDFRONT_ETAG=$(
aws cloudfront get-distribution \
--id ${CLOUDFRONT_DISTRIBUTION_ID} \
--query 'ETag' \
--output text \
) \
&& echo ${CLOUDFRONT_ETAG}
結果(例):
CloudFrontディストリビューションの破棄
CloudFrontディストリビューションを破棄します。
変数の確認:
cat << END
# CLOUDFRONT_DISTRIBUTION_ID:"Exxxxxxxxxxxxx"
CLOUDFRONT_DISTRIBUTION_ID="${CLOUDFRONT_DISTRIBUTION_ID}"
# CLOUDFRONT_ETAG:"Exxxxxxxxxxxx"
CLOUDFRONT_ETAG="${CLOUDFRONT_ETAG}"
END
コマンド:
aws cloudfront delete-distribution \
--id ${CLOUDFRONT_DISTRIBUTION_ID} \
--if-match ${CLOUDFRONT_ETAG}
結果(例):
「CloudFrontディストリビューションタグ名"handson-cli-cloudfront-distribution"が存在しない。」ことを確認します。
コマンド:
aws cloudfront list-distributions \
--query "DistributionList.Items[?DefaultCacheBehavior.TargetOriginId == \`${CLOUDFRONT_ORIGIN_ID}\`].Id" \
--output text
結果(例):