お久しぶりです。もみじんです。
個人で作っていた Firebase Cloud Functions のアプリがあります。
最近(と言っても一年ぐらい前)に v2 が正式にリリースされたということで、私も重い腰を上げてアップデートしました。
そのときに2日間悩まされたエラーがあったので同じ轍を踏まないように記事にしておきます。
悩まされたエラーと解決
エラーの詳細
以下のエラーに悩まされました。
Ready condition status changed to False for Revision *****-civ with message: The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable. Logs for this revision might contain more information. 日本語訳: Revision *****-civ の Ready condition status が False に変更され、メッセージが表示されました: ユーザー提供のコンテナが、環境変数PORT=8080で定義されたポートでの起動とリッスンに失敗しました。このリビジョンのログには、より詳細な情報が含まれている可能性があります。
パッと見た限りでは、 コンテナがエラーが起きて PORT 8080 で起動しなかったような内容です。
デプロイの仕方を間違えたかなと思いました。
ちなみにログエクスプローラでのエラーメッセージ以下のとおりです。
解決方法
解決方法は至ってシンプルで、エラーログ以外を見ることでした。
そうすると、Cloud Functions v2 で非推奨のAPIを使っていたことがわかりました。
私の場合は、v2では使用できないfunctions.config() を使っていたことが原因でした。(実装中 & ビルドしたときはエラーが出ないので見つけづらい・・・)
環境変数の実装の仕方いつの間にか変わっていたんですね。
環境を構成する | Cloud Functions for Firebase
まとめ
Cloud Functions v1 -> v2 に移行したときに悩まされたエラーについて記載しました。
とりあえず問題は解決してよかったです。
こういうインフラ系は苦手なので誰かにやってもらいたいです。
コメント