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 デベロッパー(
roles/run.developer
) - Compute 閲覧者(
roles/compute.viewer
) - サーバーレス インテグレーション デベロッパー(
roles/runapps.developer
) - サーバーレス インテグレーション オペレーター(
roles/runapps.operator
) - サービス アカウント ユーザー(
roles/iam.serviceAccountUser
)
クリックしてサービス アカウントに必要なロールを表示
Cloud Run サービスをデプロイするには、自動作成された Compute Engine のデフォルトのサービス アカウントを使用するか、ユーザー管理のサービス アカウントを指定します。サービス アカウントには次のロールが必要です。
- Cloud Run デベロッパー(
roles/run.developer
) - ログバケット書き込み者(
roles/logging.bucketWriter
) - サービス アカウント ユーザー(
roles/iam.serviceAccountUser
) - Storage 管理者(
roles/storage.admin
) - Firebase 管理者(
roles/firebase.admin
)
Cloud Run サービスを Firebase Hosting サイトに接続する
コンソールまたはコマンドラインを使用して Firebase Hosting サイトに接続できます。
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
この統合で使用するサービスリストでサービスをクリックします。
[統合] タブをクリックします。
[統合を追加] をクリックします。
[Firebase Hosting] をクリックします。
[サブドメイン(サイト ID)] フィールドにサイト ID を入力します。作成されたサービスは site_ID.web.app でホストされます。
API のリストを有効にするように求められたら、[有効にする] をクリックし、API が有効になるまで待ちます。Firebase Hosting API には Firebase の利用規約が適用されます。
[リソース] の下に、この統合の結果として作成される新しいリソースが表示されます。
[送信] をクリックし、統合とリソースが作成されるまで待ちます。
- 完了したら、サイトの公開 URL が表示されます。
- 表示されたリンクをクリックして Firebase コンソールに直接移動することもできます。
コマンドライン
最新の Google Cloud CLI に更新します。
gcloud components update
統合を作成します。
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
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 インテグレーションを更新するには:
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
更新するサービスをクリックします。
[統合] タブをクリックします。
Firebase Hosting インテグレーションを見つけて、[編集] をクリックします。
フィールドの更新が完了したら、[更新] をクリックします。
コマンドライン
利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。
gcloud beta run integrations list
コマンドを実行してインテグレーションを更新します。
gcloud beta run integrations update INTEGRATION_NAME
次のように置き換えます。
- INTEGRATION_NAME は、Firebase Hosting インテグレーションの名前に置き換えます。
必要に応じて、次のフラグ オプションを使用できます。
オプション 説明 --parameters
Cloud Run サービスを置き換えるサイト ID。 --service-account
サービスの更新時に指定するユーザー管理のサービス アカウントのメールアドレス。このサービス アカウントは、デプロイ時に使用された以前のサービス アカウントをオーバーライドします。
Firebase Hosting インテグレーションを表示する
Cloud Run サービスと Firebase Hosting のインテグレーションの現在のステータスを表示するには:
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
この統合で使用するサービスリストでサービスをクリックします。
[統合] タブをクリックします。
目的の Firebase Hosting のインテグレーションを見つけて、[詳細を表示] をクリックします。
コマンドライン
利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。
gcloud beta run integrations list
返されたリストの名前を使用して、その詳細を表示します。
gcloud beta run integrations describe INTEGRATION_NAME
INTEGRATION_NAME は、Firebase Hosting インテグレーションの名前に置き換えます。
Firebase Hosting インテグレーションを削除する
インテグレーションを削除すると、インテグレーションに関連付けられているすべての Google Cloud リソースも削除されますが、Cloud Run サービスは削除されません。
Cloud Run サービスから Firebase Hosting のインテグレーションを削除するには:
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
統合を削除するサービスをクリックします。
[統合] タブをクリックします。
目的の Firebase Hosting インテグレーションを見つけて、その右側にある省略記号アイコンをクリックし、[削除] をクリックします。
コマンドライン
利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。
gcloud beta run integrations list
返されたリストの名前を使用して、インテグレーションを削除します。
gcloud beta run integrations delete INTEGRATION_NAME
次のように置き換えます。
- INTEGRATION_NAME は、Firebase Hosting インテグレーションの名前に置き換えます。
必要に応じて、次のフラグ オプションを使用できます。
オプション 説明 --service-account
削除オペレーションを実行するユーザー管理のサービス アカウントのメールアドレス。