外部ストレージ領域とは
以下の場所を指します。
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
で外部/内部ストレージ領域の内容を確認したり変更したりすることができます。
Kudu(SCM)サイトについては、以下の記事に書きました。
外部ストレージ領域に配置されている一例
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がインストールされています。
以上です。