コードベースから複数の環境をデプロイする

同じコードベースから、それぞれ構成がわずかに異なる複数の環境をデプロイするのが一般的です。たとえば、ステージング環境に割り当てる CPU と RAM を少なくする場合や、本番環境で少なくとも 1 つのインスタンスをアクティブにし、リクエストを処理できる状態に保ちたい場合があります。

環境の詳細については、環境の概要Firebase プロジェクトの設定に関する一般的なベスト プラクティスをご覧ください。

前提条件

ステップ 0: 本番環境用 Git ブランチを設定する

main ブランチから本番環境をデプロイする場合は、次のステップに進みます。次のような別のブランチから本番環境を デプロイする場合production を使用するには、まず GitHub でそれを作成する必要があります。

GitHub UI を使用して production ブランチを作成するには、リポジトリ内でのブランチの作成と削除をご覧ください。

production ブランチをローカルに作成するには:

$ git checkout -b production
$ git push origin production:production

ステップ 1: 本番環境の apphosting.yaml を構成する

本番環境で常に少なくとも 1 台のマシンを実行させ、本番環境に固有の環境変数を設定したいとします。これを構成するには、次のような apphosting.yaml ファイルをプロジェクトのルートに作成します。

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 1

env:
  - variable: STORAGE_BUCKET
    value: <production Cloud Storage bucket name>

サポートされている設定の全一覧については、App Hosting を構成するをご覧ください。

apphosting.yaml を編集したら、GitHub リポジトリに push します。

$ git add apphosting.yaml
$ git commit -m "Added production App Hosting backend configuration."
$ git push origin

ステップ 2: コードベースを本番環境にデプロイする

本番環境の Git ブランチを構成したら、新しい本番環境用 App Hosting バックエンドを作成できます。詳細な手順については、App Hosting のスタートガイドをご覧ください。

Firebase コンソールで新しいバックエンドを作成するには、https://console.firebase.google.com/project/_/apphosting にアクセスして開始します。

ローカルに作成するには、Firebase CLI をインストールしてから、次のコマンドを実行します。

firebase apphosting:backends:create --project <replace with your PRODUCTION project ID>

このコマンドが成功すると、本番環境のバックエンドが稼働状態になり、本番環境ブランチに対する新しい commit が App Hosting によって自動的にビルドされ、デプロイされます。

ステップ 3: ステージング Git ブランチを設定する

上記と同じ手順に沿って、GitHub に staging ブランチを作成します。

$ git checkout -b staging
$ git push origin staging:staging

ステップ 4: ステージング用の apphosting.yaml を構成する

staging ブランチには、本番環境の apphosting.yaml のコピーがすでに含まれているはずです。これを変更して、ステージング環境がアクティブに使用されていないときに App Hosting でステージング環境を停止できるようにし、STORAGE_BUCKET 環境変数に別の値を設定します。

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 0

env:
  - variable: STORAGE_BUCKET
    value: <some other staging Cloud Storage bucket name>

編集が完了したら、ファイルをステージング Git ブランチに push します。

$ git add apphosting.yaml
$ git commit -m "Added staging App Hosting backend configuration."
$ git push origin

ステップ 5: コードベースをステージング環境にデプロイする

staging Git ブランチを構成したら、上記と同じ手順でコードベースをステージング環境にデプロイできます。

firebase apphosting:backends:create --project <replace with your STAGING project ID>

この手順を完了すると、同じコードベースを使用する 2 つの App Hosting バックエンドが作成されます。1 つは本番環境用、もう 1 つはステージング用で、それぞれ別の Firebase プロジェクトにあります。

次のステップ