🥪
AWS CloudShellでS3バケットのライフサイクルルールをCLIで設定する
いくつかのS3バケットに同じライフサイクルルールを適用させたかったのですが、検索力の無さから一括でできる方法が見当たらず、コンソールからポチポチやるのも面倒だったのでCLIで設定してみました。
1.ライフサイクルルールのjsonファイルを作成
アップロードした日から60日でGlacierに移行し、180日で有効期限切れになる「glacier60days-expiration180days」というライフサイクルルールを作成しました。
s3-lifecycle.json
{
"Rules": [
{
"Expiration": {
"Days": 180
},
"ID": "glacier60days-expiration180days",
"Filter": {},
"Status": "Enabled",
"Transitions": [
{
"Days": 60,
"StorageClass": "GLACIER"
}
]
}
]
}
2.jsonをアップロード
クラウドシェルを立ち上げたら、右側の「Actions」→「Upload file」を選択します。
先ほど作成した「s3-lifecycle.json」を選択してアップロード。
3.コマンド実行
「202108-test-bucket」というS3バケットに適用させたいので以下のコマンドを実行します。
aws s3api put-bucket-lifecycle-configuration --bucket 202108-test-bucket --lifecycle-configuration file://s3-lifecycle.json
S3の画面から確認すると、「glacier60days-expiration180days」が適用されていることがわかります。
Discussion