🦖

Nuxt 3 で Cloud Function for Firebase Gen 2 の region 指定等が可能に

2023/09/19に公開

ロンラン株式会社 CEO 兼 CTO の武部です。

Nuxt 3 の SSR / SSG サーバに Firebase Functions を選択している方/しようとしている方に朗報です。

Nuxt 3.7.3 から Cloud Function for Firebase Gen 2 をどの region に対してもデプロイできるようになりました
また、maxInstance などの Cloud Fucntion Gen 2 向けオプション設定も反映されるようになりました

こちら、私の unjs/nitro への PR が取り込まれたことがきっかけです。

こりゃ嬉しいぜという方、感謝の 💛 をお待ちしています。

経緯

当社が 2023 年 9 月 6 日にオープン β リリースした新サービス「Athty」(アスティ)、元々は Vue 3 SPA で開発していたのですが、リリース 2 週間前から Nuxt 3 に移行するという荒技をやってのけました(!)。

元々 Athty では、Cloud Function for Firebase Gen 2 の API を多数 asia-northeast1 リージョンに配備・利用していたため、Nuxt 3 / SSR でも Gen 2 / asia-northeast1 を選択するのは自然な流れでした。

しかし Nuxt 3 / nitro のドキュメントどおりに設定してもなぜか us-central1 へデプロイされてしまう という問題に遭遇しました。


この設定を踏襲してもなぜか us-central1 へ

Firebase / Google Cloud Platform 上のサービスを asia-northeast1 に集約してきた私たちにとって、これはなかなかクリティカルな問題です。us-central1 ということはデフォルト設定。指定が効いてない可能性大です。原因を探るべく unjs/nitro のコードを追ってみました。

すると、以前私も Functions gen 1 -> gen 2 アップデートした際ハマった Global configuration 周りに問題がありそうでした。まずは issue を起票。

https://github.com/unjs/nitro/issues/1655

その傍らで、手元の build / トランスパイル後の js コードに無理やり修正を試みたところ、期待どおりに asia-northeast1 へデプロイされることが確認できました 💪

早速 unjs/nitro を fork、コードを修正・テストし PR を送っておいたところ、翌日速やかにマージ頂きました。

その後、そもそも region のみならず maxInstanceminInstance などすべての httpsOptions が反映されていないことに気づいてくれたコントリビューターが「追い PR」を送ってくれたことで、完全となりました。

そこから 1 週間程で nitro v2.6.3 release に取り込まれ...

さらに少し間を置いて、先日リリースされた Nuxt v.3.7.3 が nitro v2.6.3 を利用するようになったことで、Nuxt 3 ユーザーも晴れて利用できるようになった、というのが経緯です。

終わりに

また世界が一歩平和に近づいた!(言い過ぎ)

ロンラン株式会社はスポーツテック領域の IT 革命を試みている、野心的なスタートアップです。Nuxt 3 を始めとした最新の Web 技術を活用し、自社製品の機能拡張を続けています。事業化はまもなくの予定です。

特に「ソフトウェアエンジニアリング」はロンランのエンジニアリング思想における重要なキーワードで、持続可能なソフトウェア開発を意識し、守り続けています。

また、今回の私のような OSS への積極的なコントリビュートや、自社/個人の成果物を OSS 公開したり、記事やカンファレンス・勉強会などでの情報発信すること。こういった非営利のソフトウェア関連活動も積極的に行うなどで、日本の IT を世界水準に押し上げ、今日の世界のソフトウェア技術の発展に貢献できる、スーパーなエンジニア集団を目指しています。

共感頂いた方は、ぜひお気軽にご連絡ください!

ロンラン株式会社コーポレートサイト
・ミッション「ランナーが諦めない世界をつくる」
・ビジョン「全世代の人々が健康に生きる社会」
https://longmayyou.run/

ロンランのファースト・プロダクト「Athty」
https://athty.com/

Athty プレスリリース「ランニング大会の新しい探し方を提供する「Athty」が本日よりオープン β 公開」
https://prtimes.jp/main/html/rd/p/000000002.000067696.html

ロンラン Tech Zenn

Discussion