2.2. S3バケットのライフサイクルの作成 (handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX)
目的
S3バケット"handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX"のライフサイクル設定を作成します。
パラメータの指定
作業に必要なパラメータを変数に格納をします。
1. S3バケット名
S3バケット名を指定します。
変数の設定:
S3_BUCKET_PREFIX='handson-cli-s3-lifecycle-lifecycle'
コマンド:
AWS_ID=$( \
aws sts get-caller-identity \
--query 'Account' \
--output text \
) \
&& echo ${AWS_ID}
結果(例):
変数の設定:
S3_BUCKET_NAME="${S3_BUCKET_PREFIX}-${AWS_ID}" \
&& echo ${S3_BUCKET_NAME}
結果(例):
handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX
2. ライフサイクルドキュメントファイル名
ライフサイクルドキュメントファイル名を指定します。
変数の設定:
DIR_S3_BUCKET_LIFECYCLE_DOC="${HOME}/environment/conf-handson-cli-s3-lifecycle"
変数の設定:
FILE_S3_BUCKET_LIFECYCLE_DOC="${DIR_S3_BUCKET_LIFECYCLE_DOC}/${S3_BUCKET_NAME}-s3-bucket-lifecycle.json" \
&& echo ${FILE_S3_BUCKET_LIFECYCLE_DOC}
結果(例):
${HOME}/environment/conf-handson-cli-s3-lifecycle/handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX-s3-bucket-lifecycle.json
各変数に正しいパラメータ値が格納されていることを確認します。
変数の確認:
cat << END
# 1. S3_BUCKET_NAME:"handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX"
S3_BUCKET_NAME="${S3_BUCKET_NAME}"
# 2. FILE_S3_BUCKET_LIFECYCLE_DOC:"${HOME}/environment/conf-handson-cli-s3-lifecycle/handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX-s3-bucket-lifecycle.json"
FILE_S3_BUCKET_LIFECYCLE_DOC="${FILE_S3_BUCKET_LIFECYCLE_DOC}"
END
手順
S3バケットライフサイクルを設定します。
変数の確認:
cat << ETX
# S3_BUCKET_NAME:"handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX"
S3_BUCKET_NAME="${S3_BUCKET_NAME}"
# FILE_S3_BUCKET_LIFECYCLE_DOC:"${HOME}/environment/conf-handson-cli-s3-lifecycle/handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX-s3-bucket-lifecycle.json"
FILE_S3_BUCKET_LIFECYCLE_DOC="${FILE_S3_BUCKET_LIFECYCLE_DOC}"
ETX
コマンド:
aws s3api put-bucket-lifecycle-configuration \
--bucket ${S3_BUCKET_NAME} \
--lifecycle-configuration file://${FILE_S3_BUCKET_LIFECYCLE_DOC}
結果(例):
完了確認
「S3バケット"handson-cli-s3-lifecycle-lifecycle-XXXXXXXXXXXX"のライフサイクルが有効である。」ことを確認します。
コマンド:
aws s3api get-bucket-lifecycle \
--bucket ${S3_BUCKET_NAME} \
--query 'Rules[].Status' \
--output text
結果(例):
注釈
有効なライフサイクルルールの数だけ"Enabled"が表示されます。