Azure上にストレージアカウントのBlobを作成し、AppServiceなどで作成したアプリのログファイルをBlobに出力するケースは結構あると思います。
こんなときに後々問題になりやすいのが、ログファイルなどのローテーションです。
気づいたら、とんでもない数のファイルが作成されていたなど結構あると思います。
今回はストレージアカウントで不要なファイルを定期的に削除したい時に、簡単に機能が使えるライフサイクル管理という機能について紹介したいと思います。
ストレージアカウントのライフサイクル管理を使ってみる
前提条件
前提条件としてすでに、ストレージアカウントの作成及びBlobの作成は終わっているものとします。
今回はストレージアカウント名:testcycleにコンテナー名:logsを作成しそこに数件のログがたまっている状態であることを想定しています。

ライフサイクル管理の設定
対象のストレージアカウントでライフサイクル管理を選択し、規則の追加を選択します。

任意の[ルール名]と[ルールの範囲]を◎フィルターを使用してBLOBを制限するにして次へを選択。

いろんなパターンで設定できるのですが、今回は以下の条件で行きます。
最終変更日から3日以上経過したBLOB(ファイル)は削除する

BLOBの削除以外にもストレージを移動したり、アーカイブしたりすることも可能です。
フィルターを設定して追加ボタンをクリックすると設定完了です。
ここではBLOBプレフィックスにlogs/testlog_を設定しました。
※これは、コンテナー名:logsのtestlog_で始まるBLOB(ファイル)という意味です。

設定が完了するとリストビューに規則名が登録されます。

設定したルールが実行されるタイミング
ライフサイクル管理で設定された内容が実行されるタイミングは、明確には書いていません。
ストレージアカウントのリージョンによって異なるようです。
私が確認した限りでは、朝9:00ごろまでは実行された形跡はなく、13:00頃に再度確認したところ
実行されていました。
登録されたルールが有効になるまでに最大24時間かかる場合があるとの注意書きもありました。
ちなみに、設定を変更した場合はルールが有効になる前に最大24時間ルールが実行されるのに
最大24時間で合計48時間かかる可能性があるみたいです。
まとめ
Azure上に置いておくファイルは、存在するだけでも微々たるものですがコストが
かかってしまうのでログファイルなどは、定期的に削除すほうがいいともいます。
そんなときは、ライフサイクル管理で簡単に削除設定などができるようになるのでおすすめです。
コメント