処理の実行
ディストリビューション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ドメイン名を取得します。
コマンド:
CLOUDFRONT_DOMAIN_NAME=$(
aws cloudfront get-distribution \
--id ${CLOUDFRONT_DISTRIBUTION_ID} \
--query 'Distribution.DomainName' \
--output text \
) \
&& echo ${CLOUDFRONT_DOMAIN_NAME}
結果(例):
dxxxxxxxxxxxxx.cloudfront.net
CloudFrontディストリビューションにアクセスします。
コマンド:
curl ${CLOUDFRONT_DOMAIN_NAME}
結果(例):
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>JAWS-UG CLI (サンプルコンテンツ)</h1>
<p>
<img src="img.jpg" alt="クラウド" />
</p>
<p>
sampleイメージです。
</p>
<h2>今後のリリース予定</h2>
<p>近日、新規リリースの予定です!</p>
</body>
</html>
完了確認
本手順の主処理は、以下の完了条件を満たしたときに成功したものとします。
完了条件1: CloudFrontディストリビューションタグ名"handson-cli-cloudfront-distribution"にアクセスすることができる。
「CloudFrontディストリビューションタグ名"handson-cli-cloudfront-distribution"にアクセスすることができる。」ことを確認します。
コマンド:
curl -LI -Ss \
-o /dev/null \
-w '%{http_code}\n' \
${CLOUDFRONT_DOMAIN_NAME}
結果(例):