外部ストレージ領域とは
以下の場所を指します。
d:\home
主に、ログが出力されたり、アプリケーションがデプロイされる場所(D:\home\site\wwwroot)あたりのことを指します。
◎ アプリケーション処理では外部ストレージを使う ▽
アプリケーション処理でファイル入出力する場合は、こちらの外部ストレージ領域を使いましょう。内部ストレージ領域に保存してしまうと、再起動で削除されてしまうからです。
◎ 外部ストレージ領域のサイズを増やす ▽
外部ストレージ領域のサイズを増やしたければ、AppServiceプランの場合はスケールアップ・Functionsの従量課金プランの場合は指定したストレージアカウントのサイズを増やすと、アプリケーションの外部ストレージ領域のサイズを増やすことができます。
内部ストレージ領域Aとは
以下の場所を指します。
d:\local
内部ストレージ領域は、外部ストレージ領域と違ってサイズを確認したりサイズを増やしたりすることはできません。
アプリケーション処理でファイル入出力を行える領域ですが、外部ストレージ領域のところでも記述したとおり、アプリケーション処理のファイル入出力では外部ストレージ領域の使用をオススメします。
◎ 再起動でファイルが消える ▽
内部ストレージ領域で、ファイル入出力すること自体は悪いことではないですが、AppService/Functionsを再起動するとファイルが削除されます(初期状態にリセットされる)ので、理解した上で使用ください。
再起動は、Azureプラットフォームのメンテナンスによって勝手に再起動されることもあることも覚えておいてください。
内部ストレージ領域Bとは
以下の場所を指します。
d:\home と d:\local 以外
こちらは、アプリケーションからアクセスできない領域です。ユーザが直接いじる必要はないですし、変にいじると環境が壊れてしまいます。一つのAppServiceプランに登録している全てのアプリケーションが同じ内容になっています。(ひとつの領域を各アプリケーションが参照してます。)
ストレージ領域の内容をKuduサイトで見る
該当AppService > 開発ツールの高度なツール > 移動 > Kuduサイト > Debugconsoleタブ > CMD
で外部/内部ストレージ領域の内容を確認したり変更したりすることができます。
どのようなものが配置されているのか、少し例を紹介します。
◎ 外部ストレージ領域に配置されているもの ▽
[d:\home\site\wwwroot]: Azure上にデプロイしたアプリケーションコードが配置される
[d:\home\site\wwwroot\Modules]: インストールしたライブラリモジュールが配置される(d:\home\site\wwwroot\requirements.psd1に記載されたモジュールがModulesフォルダに自動インストールされる仕組み)
[d:\home\LogFiles\eventlog.xml]: IIS上で発生したイベントのログが出力される
◎ 内部ストレージ領域に配置されているもの ▽
[d:\Program Files]: Git・apatch-tomcat・MySQL・IIS・Javaなどがインストールされています。
[d:\Python34]: Pythonがインストールされています。
Kudu(SCM)サイトについては、以下の記事に書きました。
以上です。