Azure リソースで指定が必要となる BLOB アカウントの乱立予防

Azure BLOB Storage は、アプリのファイル入出力先に使う以外にも、Functions の制御ファイル置き場に必要となったり、各種 Azure リソースのログ出力先としても使用されることが多く、それぞれについて単純に毎回新しい BLOB アカウントを用意すると、そのうちストレージアカウントだらけになってしまう。

Azure リソースが必要とする類の BLOB (ログ出力先や Functions 用制御ファイルなど) は、基本的に対象リソース名などをフォルダ名にしてファイルが格納されるため、同じストレージアカウントを指定しても、コンフリクトすることはない。 なので、dev/stg/prd ぐらいの粒度で共通のストレージアカウントを一つ用意し、各種リソースで BLOB が必要になった際は、この共通 BLOB を使うようにすることで、ストレージアカウントの乱立を防ぐことが出来る。

Azure Web Apps の App Service ログについては、ストレージアカウント名だけでなく格納先のコンテナ名まで指定する必要があるが、こちらも対象コンテナの下にリソース名 (Web App 名) のフォルダが作成されるため、webapplogswebserverlogs などの単位で上述した共通 BLOB ストレージにコンテナを作成し、複数 Web Apps で共通使用する形で問題ない。

なお、この共通ストレージアカウント方式で開発を進める場合、当初実験的に作成してその後不要になったリソースが出力したファイルも、ストレージアカウントの一覧を見ただけでは判断することができず、それは不便だが、dev 用のストレージアカウントはそういうゴミファイルが残りやすいものとして扱い、定期的に手動削除するなどの方針で対処出来るかと思われる。