このページでは、App Hosting に関するよくある質問(FAQ)の回答を紹介します。
App Hosting に関するよくある質問
一般的な App Hosting の制限事項とトラブルシューティング
- Cloud Run インフラストラクチャの問題により、
us-central1などの一部のリージョンでリソースの作成または更新が想定よりも遅くなることがあります。特定のリージョンでデプロイのレイテンシが問題になる場合は、別のリージョンにデプロイすることをおすすめします。 - App Hosting の CDN では、キャッシュキーに特定のリクエスト ヘッダーのセットのみを含めることができます。このリストには、NextJS の
RSC、Next-Router-State-Tree、Next-Router-Prefetch、Next-Router-Segment-Prefetch、Next-Urlヘッダーと、Cloud CDN の標準のAccept、Accept-Encoding、Access-Control-Request-Headers、Access-Control-Request-Method、Origin、Sec-Fetch-Dest、Sec-Fetch-Mode、Sec-Fetch-Site、X-Goog-Allowed-Resources、X-Originが含まれます。レスポンスに、ここに記載されていない値を持つVaryヘッダーが含まれている場合、CDN はそのレスポンスをキャッシュに保存しません。 - キャッシュに保存されていない静的ファイルは Cloud Run から提供されます。今後のリリースでは、パフォーマンスを向上させるために、App Hosting オリジンから保存され、提供されるようになります。
- Firebase コンソールで、バックエンドの作成時に「ビルドが見つからず、無効です」というエラーが断続的に表示されることがあります。
- 同じプロジェクト内のすべてのバックエンドが GitHub の組織 / アカウントを共有します。その組織 / アカウントの異なるリポジトリに接続できます。異なる GitHub アカウントに接続されているバックエンドを作成するには、それらを別々のプロジェクトに配置します。
Angular アプリの制限事項とトラブルシューティング
Angular の App Hosting サポートは現在開発中で、拡張されていますが、次の制限があります。
- I18n: コア I18n 機能は動作しますが、SSR ページに直接移動するとエラーが発生することがあります。
- ローカライズ: 異なる言語 / 地域向けのバージョンをビルドすることはできません。
- ビルダー: 現在、アプリケーション ビルダーのみがサポートされています。
- 環境と Monorepo ツール: 複数のアプリケーション ターゲットを持つ Angular プロジェクトは失敗します。より完全な monorepo サポートが必要な場合は、Nx を使用してください。
Angular SSR での HTTP 400 エラーとプロキシ信頼
Firebase App Hosting にデプロイされた Angular アプリケーションで HTTP 400(Bad Request)エラー、ホスト検証のブロック、プロキシ信頼エラーが発生した場合は、Angular のバージョンに応じて推奨される解決策に沿って対応してください。
- Angular v19、v20、v21: これらの HTTP 400 エラーを解決するには、次の 2 つの方法があります。
- 依存関係をアップグレードする:
npm update @angular/core @angular/ssrを実行して、現在の Angular バージョンの最新のパッチリリースをインストールします。 - 手動構成: サーバー構成で
trustProxyHeaders: trueを設定して、コードレベルの構成フォールバックを適用します(Angular ドキュメントの信頼できるプロキシ ヘッダーの構成をご覧ください)。
- 依存関係をアップグレードする:
- Angular v22: 新しいバックエンドでの最初のビルドで 400 エラーが返されることがあります。この問題を解決するには、2 つ目のビルドを生成します。以降のビルドはすべて、意図したとおりに動作するはずです。
Next.js の制限事項とトラブルシューティング
- デフォルトでは、
images.unoptimizedを明示的に false に設定するか、カスタムの画像ローダを使用しない限り、App Hosting では組み込みの NextJS 画像最適化が無効になっています。Next.js での画像読み込みを最適化するをご覧ください。 - デフォルトでは、Next.js はキャッシュに保存されたページとデータをファイル システムに書き込みます。これは、App Hosting の各サービング インスタンスのメモリにカウントされます。インスタンスが
Memory limit exceededエラーで再起動する場合は、Next.js でサーバー キャッシュを構成するをご覧ください。 - 現在、App Hosting では、ミドルウェアを使用する NextJS アプリのキャッシュが制限されています。時間の経過とともに、キャッシュ ヒット率は向上します。
- パーセント エンコードされた文字を含む URL パスは、Cloud Run によってデコードされます。これにより、Next.js の並列ルーティングなど、エンコードされた URL パスのみを想定する機能で問題が発生する可能性があります。