FIXER cloud.config Tech Blog
Azure FunctionsやApp Serviceの“ローカルディレクトリ”はどこにある?
2021年07月30日 11時00分更新
本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Azure Functions, App Service でローカルからファイルを開く(Windows)#Azure リレー」を再編集したものです。
こんにちは、さとはること佐藤晴輝です。
ローカルPCで動くプログラムでは、特定のディレクトリにあるファイルを開いてなんやかんやすることがよくあると思います。
AzureではファイルはBlob Storage等、別のサービスと接続することで管理するのが一般的だと思います。
しかし、ローカルにファイルがある前提のライブラリも多く、使えないと面倒な場面が存在します。
そこで、クラウド上のローカルディレクトリ(?!)を扱う方法について解説したいと思います。
忙しい人向けの方法
d:\home
上記の通り、ホームディレクトリ以下が使えます。
詳しい解説
App Service は一般にPaaS(Platform as a Service)と呼ばれるもののひとつです。
また、Azure Functionsは裏ではApp Serviceのインスタンスが起き上がって実行しているので以下ではApp Serviceについて説明していきます。
PaaSの特徴として、ユーザーはコンピューターの物理的なマシンやOS、実行環境などを気にする必要がないというものがあります。
一方でローカルのファイル管理は通常、OSが担当しており、PaaSでは触れない領域なようにも思えます。
そこで、App Serviceでは裏でどのように管理しているかを気にすることなく使用可能な領域が用意されています。
d:\home
上記領域内のファイルは、一つのアプリに関連するすべての仮想マシンのインスタンスで共有されています。
逆に、すべてのインスタンスのそれぞれで管理される領域も用意されています。
d:\local
こちらはホームディレクトリと違いインスタンス毎に完全に独立しており、インスタンスが再起動されたタイミングで保存された内容も削除されます。
また、インスタンス自身が持っているディレクトリに書き込む分ホームディレクトリより高速であるという点も特徴です。
一般的なPCのローカルディレクトリとは異なる挙動なので、クラウド特有のインスタンス等の扱いがわかっている方や、クラウドネイティブな開発を目指したい方は挑戦してみるのもいいかもしれません。
参考
オペレーティング システムの機能 – Azure App Service | Microsoft Docs
Azure Web Apps のファイルシステムについて (Windows と Linux) – (仮) ブログ (hatenablog.com)
佐藤 晴輝/FIXER
フロントからバック、ネットワークまである程度触れるガジェットオタクです。
好きな言語は C# で IoT と画像処理が得意です。
[転載元]
Azure Functions, App Service でローカルからファイルを開く(Windows)#Azure リレー