みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Cloud Functionsのファイルシステムについて

Cloud Functionsのファイルシステムについては,ここに詳しく書いてありますが,自分なりにまとめます.

基本的にread-only

Cloud Functionsで実行するPythonスクリプトが,ファイルシステムに何らのデータを書き込もうとするとエラーになります.

[Errno 30] Read-only file system

Cloud Functionsでファイルを扱う

ファイルはCloud Storageに保存するべきですが,一時ファイルを扱う場合は,/tmpディレクトリを利用します.

ただし,このディレクトリはメモリーに保持されるため,/tmpにたくさんのファイルを保存すると,その分メモリ使用量が増加します.必要がない一時ファイルは積極的に削除したほうがよさそうです.

次の実行時に保持される場合がある

関数を呼び出すのが2回目移行の場合,前回のインスタンスが再利用される場合があります.詳しくはここに記載がありますが,/tmpも同様で,前回の呼び出し時に作成された一時ファイルが残っている場合があります.

ただし,常に一時ファイルが残ることが保証されているわけではなく,コールド スタートする時などは,一時ファイルは保持されません.

したがって,関数実行時に作成した一時ファイルが,次回移行の呼び出し時に影響がでないよう,作成した一時ファイルはその都度削除するか,ファイルが存在しても問題なく実行できるように工夫しなければなりません.