こんにちわ、のりじ です。
バックアップデータなどをAzure Blob Storageに保存する場合、「どの期間で保存データを削除するか」も考えておかないと後々大変だな…という経験をしたので備忘録。
Azure Blob Storageには「ライフサイクル管理」という機能があるので、それを利用する方法がありますが「Storage(汎用 v1)」は機能が提供されていません…。
というわけで、「Storage(汎用 v1)」でも定期的にデータの削除を自動で行ってくれるLogic Appsを使った方法を試してみました。
1. Logic Appsのワークフローを作る
全体図はこんな感じ。非常にシンプルです。
2. トリガー:繰り返し
トリガーには「スケジュール」コネクタの「繰り返し」を利用します。
検索窓に「スケジュール」と入力すると出てきます。
今回は1週間に1回ワークフローが動くようにします。(この期間はお好みで)
図のように「Add new parameter」も表示して設定してください。
タイムゾーンを設定していないと夏時間の影響を受ける可能性があるそうなので忘れずに。
2-1. アクション:BLOB を一覧表示する (V2)
検索窓に「Blob」と入力すると「Azure Blob Storage」が一覧に出てくるのでクリックし、一覧の中から「BLOB を一覧表示する (V2)」をクリック。
初めてコネクタを利用するときはBlob Storageへの接続が必要になります。入力する情報は「ストレージアカウント」の「アクセスキー」ページに表示される内容です。(「接続名」はわかりやすい名前にしておく)
接続できると、赤枠内はプルダウンメニューで表示されるものを選ぶだけになります。定期的にデータを削除したいコンテナー名を選びます。(今回はbackup)
2-2. アクション:アレイのフィルター処理
検索窓に「データ操作」と入力し、一覧の中から「アレイのフィルター処理」をクリックします。
以下の内容を設定します。
- 動的なコネクタの中から「value」を選択
- 動的なコネクタの中から「LastModified(ファイルまたはフォルダーが最後に変更された日時)」を選択
- 「次の値未満」を選択
- 「式」に以下を入力
addDays(utcNow(), -60)
今回はトリガーが起動した日より「60日(2ヶ月)より前のものを削除する」形にしました。日数は必要に合わせて変更してください。
2-3. アクション:For each
検索窓に「制御」と入力してクリック、一覧の中から「For each」をクリックします。
「以前の手順から出力を選択」には「アレイのフィルター処理」の動的なコンテンツ「本文」を選択します。
For each内の「アクションを追加」をクリック。
2-4. アクション:BLOB を削除する (V2)
検索窓に「Blob」と入力すると「Azure Blob Storage」が一覧に出てくるのでクリックし、一覧の中から「BLOB を削除する (V2)」をクリック。
「ストレージ名」はプルダウンメニューから該当のものを選択します。
「BLOB」には、動的なコネクタの「Path(ファイルまたはフォルダーのパス)」を選択。
以上でワークフローは完成です。
3. 最後に
私の場合、個人ブログのバックアップデータをAzure Blob Storageに自動で保存していってるのですが「Storage(汎用 v1)」を利用していたためライフサイクル管理が使えず困った、という話でした。
ライフサイクル管理が利用できないAzure Blob Storageの定期的なデータ削除にぜひご活用ください!