🔎
【Mac】Cloud Functionsをzipアップロードで作成した時のエラー
Cloud Functionsで関数を作ろうとした時、なぜか「main.pyファイルが存在しない」というエラーが出てしまった。
しばらくハマったのでその対処法メモです。
原因: Macの「"XXX"を圧縮」でエラーがでる
Macの「"XXX"を圧縮」でzipファイルを作ると、どうやら特定の隠しファイルが含まれてしまう可能性があり、これが問題の原因となる可能性があるとのことでした。
Build failed: missing main.py and GOOGLE_FUNCTION_SOURCE not specified. Either create the function in main.py or specify GOOGLE_FUNCTION_SOURCE to point to the file that contains the function
対処法: コマンドでzipファイルを作成する
zipファイルに指定ファイルのみを含むために、下記のようなコマンドでzipを作成する必要があったようです。
$ zip -r function-source.zip main.py requirements.txt
-
zip
: ZIPファイルを作成するためのコマンド。 -
-r
: 再帰的にディレクトリを圧縮するためのオプション。これ指定したディレクトリやファイル全てがZIPファイルに含まれます。 -
function-source.zip
: 作成するZIPファイルの名前です。 -
main.py requirements.txt
: ZIPファイルに含めたいファイルやディレクトリの名前です。
例
zip -r generate-thumbnail.zip firebase-adminsdk.json source main.py requirements.txt
参考
Discussion