Cloud Run を Firebase Hosting に接続してカスタム ドメインと CDN を使用する

Cloud Run サービスに新しいパブリック エンドポイントを設定するには、Cloud Run サービスの前に Firebase Hosting を使用します。Firebase Hosting を使用すると、グローバル CDN にアクセスして、サービスの無料のカスタム ドメインを構成できます。Firebase Hosting を使用すると、ホスティング リクエストを Cloud Run サービスに転送できますが、Firebase Hosting の使用に精通されていない場合は、オンボーディングに時間を要する可能性があります。

このページで説明する Cloud Run インテグレーション(プレビュー)を使用すると、Firebase Hosting をセットアップすることを必要とせず、新しい Firebase Hosting サイトを介して Cloud Run サービスをすばやく公開できます。既存のサイトを使用する場合は、Cloud Run を使用した動的コンテンツの配信とマイクロサービスのホスティングをご覧ください。

始める前に

  • 統合する Cloud Run サービスがすでにデプロイされていることを確認します。
  • Firebase Hosting の料金ページを確認します。統合で使用した個別のリソースに対して課金されます。

必要なロール

Cloud Run インテグレーションを使用するには、ユーザーまたは管理者が 2 つの異なるプリンシパルに IAM のロールを付与する必要があります。

クリックして Google アカウントに必要なロールを表示

Cloud Run の統合を使用するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを Google アカウントに付与するよう管理者に依頼してください。

クリックしてサービス アカウントに必要なロールを表示

Cloud Run サービスをデプロイするには、自動作成された Compute Engine のデフォルトのサービス アカウントを使用するか、ユーザー管理のサービス アカウントを指定します。サービス アカウントには次のロールが必要です。

Cloud Run サービスを Firebase Hosting サイトに接続する

コンソールまたはコマンドラインを使用して Firebase Hosting サイトに接続できます。

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. [統合を追加] をクリックします。

  5. [Firebase Hosting] をクリックします。

    画像

  6. [サブドメイン(サイト ID)] フィールドにサイト ID を入力します。作成されたサービスは site_ID.web.app でホストされます。

  7. API のリストを有効にするように求められたら、[有効にする] をクリックし、API が有効になるまで待ちます。Firebase Hosting API には Firebase の利用規約が適用されます。

  8. [リソース] の下に、この統合の結果として作成される新しいリソースが表示されます。

  9. [送信] をクリックし、統合とリソースが作成されるまで待ちます。

    • 完了したら、サイトの公開 URL が表示されます。
    • 表示されたリンクをクリックして Firebase コンソールに直接移動することもできます。

gcloud

  1. 最新の Google Cloud CLI に更新します。

    gcloud components update
  2. 統合を作成します。

    gcloud beta run integrations create \
    --type=firebase-hosting \
    --service=SERVICE \
    --parameters='site-id=SITE_ID'

    次のように置き換えます。

    • SITE_ID は、作成して使用する Firebase Hosting サイト ID に置き換えます。これは、Firebase URL(SITE_ID.web.app)のサブドメインとして表示されます。
    • SERVICE は、使用する Cloud Run サービスの名前に置き換えます。

    必要に応じて、--service-account=SERVICE_ACCOUNT_EMAIL フラグを含めます。

    • SERVICE_ACCOUNT_EMAIL は、サービスのデプロイに使用されるユーザー管理のサービス アカウントのメールアドレス(PROJECT_NUMBER-compute@developer.gserviceaccount.com)に置き換えます。デフォルトのコンピューティング サービス アカウント(SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com)を使用する場合は、このフラグを省略します。

      Cloud Run インテグレーションをデプロイするときに、指定されたサービス アカウントを引き続き使用するには、次のコマンドを実行します。

      gcloud config set runapps/deployment-service-account
  3. Firebase Hosting サイトが作成されるまで 1~2 分ほど待ちます。プロセスが完了すると、次の成功メッセージが表示されます。

    [firebase-hosting] integration [firebase-hosting-1] has been created successfully.

    gcloud beta run integrations describe を使用してステータスを確認できます。

Firebase Hosting インテグレーションを更新する

インテグレーションを更新すると、そのインテグレーションに関連付けられているすべての Google Cloud リソースが更新されます。Cloud Run サービスから Firebase Hosting インテグレーションを更新するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. 更新するサービスをクリックします。

  3. [統合] タブをクリックします。

  4. Firebase Hosting インテグレーションを見つけて、[編集] をクリックします。

  5. フィールドの更新が完了したら、[更新] をクリックします。

gcloud

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. コマンドを実行してインテグレーションを更新します。

    gcloud beta run integrations update INTEGRATION_NAME

    次のように置き換えます。

    • INTEGRATION_NAME は、Firebase Hosting インテグレーションの名前に置き換えます。

    必要に応じて、次のフラグ オプションを使用できます。

    オプション 説明
    --parameters Cloud Run サービスを置き換えるサイト ID。
    --service-account サービスの更新時に指定するユーザー管理のサービス アカウントのメールアドレス。このサービス アカウントは、デプロイ時に使用された以前のサービス アカウントをオーバーライドします。

Firebase Hosting インテグレーションを表示する

Cloud Run サービスと Firebase Hosting のインテグレーションの現在のステータスを表示するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. この統合で使用するサービスリストでサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的の Firebase Hosting のインテグレーションを見つけて、[詳細を表示] をクリックします。

gcloud

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、その詳細を表示します。

    gcloud beta run integrations describe INTEGRATION_NAME

    INTEGRATION_NAME は、Firebase Hosting インテグレーションの名前に置き換えます。

Firebase Hosting インテグレーションを削除する

インテグレーションを削除すると、インテグレーションに関連付けられているすべての Google Cloud リソースも削除されますが、Cloud Run サービスは削除されません。

Cloud Run サービスから Firebase Hosting のインテグレーションを削除するには:

コンソール

  1. Google Cloud コンソールで [Cloud Run] ページに移動します。

    Cloud Run に移動

  2. 統合を削除するサービスをクリックします。

  3. [統合] タブをクリックします。

  4. 目的の Firebase Hosting インテグレーションを見つけて、その右側にある省略記号アイコンをクリックし、[削除] をクリックします。

gcloud

  1. 利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。

    gcloud beta run integrations list
  2. 返されたリストの名前を使用して、インテグレーションを削除します。

    gcloud beta run integrations delete INTEGRATION_NAME

    次のように置き換えます。

    • INTEGRATION_NAME は、Firebase Hosting インテグレーションの名前に置き換えます。

    必要に応じて、次のフラグ オプションを使用できます。

    オプション 説明
    --service-account 削除オペレーションを実行するユーザー管理のサービス アカウントのメールアドレス。

制限事項

Cloud Run インテグレーションは、特定のリージョンでのみサポートされています。Cloud Run インテグレーションでサポートされていないリージョンを使用する必要がある場合は、Cloud Run を使用した動的コンテンツの配信とマイクロサービスのホスティングをご覧ください。