[アップデート]複数のバケットのsoft delete機能を一括で無効化できるようになりました
概要
2024年7月2日にCloud Storageのsoft delte機能を一括で無効化できる機能が追加されました。
You can now disable soft delete for multiple buckets at a time or for all buckets in a project.
一度に複数のバケットに対して、またはプロジェクト内のすべてのバケットに対して、ソフト削除を無効にできるようになりました。(DeepL翻訳)
※引用:https://cloud.google.com/release-notes
追加された機能としては以下となります。
- コンソールから、バケットを選択して一括で無効化できる
- gcloud upgrade storageコマンドでプロジェクト全てのバケットを一括で無効化できる
これまでsoft delete機能を無効化するには、コンソールで一つ一つのバケットを開いて無効化するか、gcloud storage buckets update
コマンドで--clear-soft-delete
フラグを設定して一つ一つのバケットに設定していくしかありませんでした。
地味に手間がかかる作業だったので助かるアップデートかもしれません。
本記事では実際にコンソールで選択したバケットのsoft delete一括無効化とgcloudコマンドを用いたプロジェクトレベルでのsoft delete一括無効化を行ってみました。
コンソールでの一括無効化を試してみる
Cloud Storageのコンソールトップから左側の設定
を押下します。
削除(復元可能)
を押下します。
画面下部にバケットが表示されます。無効化したいバケットの左側にあるチェックボックスをチェックします。一括でチェックする場合は青枠のチェックボックスをチェックすると一括でチェックされます。
上記で無効化したいバケットが表示されていない場合、画面真ん中あたりに記載されている以下の表示内容に該当するかもしれません。
Only buckets which have a soft delete policy and contain soft-deleted objects in the last 30 days are shown in the table.
ソフト削除ポリシーを持ち、過去30日間にソフト削除されたオブジェクトを含むバケットのみが表に表示されます。
一つでもチェックすると画面下部のTURN OFF SOFT DELETE
が活性化され押下できるようになります。TURN OFF SOFT DELETE
を押下すると選択したバケットのsoft deleteが無効化されます。また、押下後(soft deleteが無効化された後)は削除(復元可能)
タブの画面下部のバケット一覧に表示されないようになります。
以下が無効化後の表示イメージです。
以上がコンソールからのsoft delete無効化方法となります。とても簡単です。
gcloudコマンドでプロジェクト単位で無効化してみる
こちらもシンプルな方法なのですが、以下のコマンドを用います。
gcloud storage buckets update --clear-soft-delete gs://*
本アップデート前からgcloudコマンドで--clear-soft-delete
フラグを用いたsoft deleteの無効化は可能でしたがあくまでも一つのバケットを対象に可能でした。
本アップデートではgs://*
というワイルドカードを用いることでプロジェクト全体のバケットを一括で無効化できる容易なったようです。
それでは実際に実行してみます。
10個のバケットが私の検証環境にあったのですが、Completed 10
の出力の通り全てsoft deleteが無効化されました。
ところで一点気になったのが、リファレンスでは
To disable soft delete for all buckets within a project, run the gcloud storage buckets update command with the --clear-soft-delete
プロジェクト内のすべてのバケットのソフト削除を無効にするには、gcloud storage buckets update コマンドを --clear-soft-delete フラグ付きで実行します(DeepL翻訳)
と記載があり、また以下のコマンドが例として記載されていたのですが
gcloud storage buckets update --clear-soft-delete gs://*
これはそもそもワイルドカード指定ができるようになっていて、gs://直下でワイルドカード指定しているからプロジェクト単位(=全バケット)なのではないかと思いました。
なので実際にgs://test-*
のようにワイルドカード指定してみたところ、プロジェクト単位ではなくてtest-
から始まるバケットが無効化されました。
よってワイルドカード指定できるようになった、指定方法によってはプロジェクト単位(全バケット)指定での無効化もできる、という解釈でも良いのではないかと個人的には思いました(曖昧な記憶ですが、以前はワイルドカードを用いるとno matches found: gs://*
のように表示されていた気がします・・・)。
まとめ
今まで地味に手間だった作業が簡略化されるのでありがたいアップデートだと思いました。
アップデート情報はまめにキャッチして、どんどん業務に取り入れていきたいなと思います。それではまた。
参考
Disable soft delete for multiple buckets or all buckets within a project