Cloud Run サービスに新しいパブリック エンドポイントを設定するには、Cloud Load Balancing を使用して、Cloud Run サービスの前にグローバル外部アプリケーション ロードバランサを追加します。グローバル外部アプリケーション ロードバランサを使用すると、カスタム ドメインの設定を制御できますが、TLS 証明書を所有していない場合や、グローバル外部アプリケーション ロードバランサを使用している場合は、設定手順が必要です。
このページで説明する Cloud Run インテグレーション(プレビュー)を使用すると、グローバル外部アプリケーション ロードバランサを使用して Cloud Run サービスに対して新しいカスタム ドメイン マッピングをすばやく設定できます。既存のグローバル外部アプリケーション ロードバランサを使用する場合は、Cloud Run を使用したグローバル外部アプリケーション ロードバランサの設定をご覧ください。
始める前に
- Cloud Run サービスにマッピングするドメインの DNS を変更するために必要なアクセス権があることを確認します。
- 統合する Cloud Run サービスがすでにデプロイされていることを確認します。
- グローバル外部アプリケーション ロードバランサの料金ページを確認します。統合で使用した個別のリソースに対して課金されます。
必要なロール
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
) - Compute ロードバランサ管理者(
roles/compute.loadBalancerAdmin
)
グローバル外部アプリケーション ロードバランサを使用してカスタム ドメインをマッピングする
カスタム ドメインは、コンソールまたはコマンドラインを使用してマッピングできます。SSL 証明書がプロビジョニングされ、Cloud Run サービスに対する HTTPS トラフィックの転送が開始するまでに最大で 1 時間かかることがあります。
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
この統合で使用するサービスリストでサービスをクリックします。
[統合] タブをクリックします。
[統合を追加] をクリックします。
[カスタム ドメイン - Google Cloud Load Balancing] をクリックします。
[ドメイン] フィールドにドメインを入力します。
[パス] フィールドに、使用しているドメインパスを入力します。
このカスタム ドメインにマッピングするサービスの名前を [サービス] フィールドに入力します。
他のドメインをマッピングする場合は、[項目を追加] をクリックし、上記の手順を繰り返して、必要に応じてドメインをサービスにマッピングします。
API のリストを有効にするように求められたら、[有効にする] をクリックし、API が有効になるまで待ちます。
[リソース] の下に、この統合の結果として作成される新しいリソースが表示されます。
[送信] をクリックし、統合とリソースが作成されるまで待ちます。
- 完了すると、構成が必要な DNS レコードを持つテーブルが作成されます。DNS プロバイダでは、これを使用して DNS レコードを更新します。
- DNS プロバイダで DNS を更新した後、SSL 証明書のプロビジョニングが完了し、サービスへのトラフィックの転送が開始されるまでに最大 45 分を要する場合があります。
gcloud
最新の Google Cloud CLI に更新します。
gcloud components update
統合を作成します。
gcloud beta run integrations create \ --type=custom-domains \ --parameters='set-mapping=DOMAIN:SERVICE' \
次のように置き換えます。
- DOMAIN は、カスタム ドメイン(
example.com
またはsubdomain.example.com
など)に置き換えます。example.com/subpath/*
のようなパスを含めることもできます
- 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
- DOMAIN は、カスタム ドメイン(
完全に構成されたロードバランサが作成されるまでに 2~5 分かかります。プロセスが完了すると、次のメッセージが表示されます。
[custom-domains] integration [custom-domains] has been created successfully. To complete the process, please ensure the following DNS records are configured for the domains: NAME TTL TYPE DATA DOMAIN 3600 A IP_ADDRESS It can take up to an hour for the SSL certificate to be provisioned.
gcloud beta run integrations describe
を使用してステータスを確認できます。表示された IP_ADDRESS 値を使用して、DNS プロバイダで DNS レコードを更新します。DNS プロバイダで DNS を更新した後、SSL 証明書のプロビジョニングが完了し、サービスへのトラフィックの転送が開始されるまでに最大 45 分を要する場合があります。
ロードバランサ インテグレーションを使用するカスタム ドメインを更新する
インテグレーションを更新すると、そのインテグレーションに関連付けられているすべての Google Cloud リソースが更新されます。ロードバランサ インテグレーションを使用するカスタム ドメインを Cloud Run サービスから更新するには:
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
更新するサービスをクリックします。
[統合] タブをクリックします。
ロードバランサが統合されたカスタム ドメインを見つけて、[編集] をクリックします。
フィールドの更新が完了したら、[更新] をクリックします。
gcloud
利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。
gcloud beta run integrations list
コマンドを実行してインテグレーションを更新します。
gcloud beta run integrations update INTEGRATION_NAME
次のように置き換えます。
- INTEGRATION_NAME は、ロードバランサ インテグレーションを使用しているカスタム ドメインの名前に置き換えます。
必要に応じて、次のフラグ オプションを使用できます。
オプション 説明 --parameters
サービスに設定するカスタム ドメイン。 --service-account
サービスの更新時に指定するユーザー管理のサービス アカウントのメールアドレス。このサービス アカウントは、デプロイ時に使用された以前のサービス アカウントをオーバーライドします。
ロードバランサ インテグレーションを使用するカスタム ドメインを表示する
Cloud Run サービスのロードバランサ統合でカスタム ドメインの現在のステータスを表示するには:
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
この統合で使用するサービスリストでサービスをクリックします。
[統合] タブをクリックします。
目的のロードバランサ統合が使用されているカスタム ドメインを見つけて、[詳細を表示] をクリックします。
gcloud
利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。
gcloud beta run integrations list
返されたリストの名前を使用して、その詳細を表示します。
gcloud beta run integrations describe INTEGRATION_NAME
INTEGRATION_NAME は、ロードバランサ統合を使用しているカスタム ドメインの名前に置き換えます。
ロードバランサ統合を使用するカスタム ドメインを削除する
インテグレーションを削除すると、インテグレーションに関連付けられているすべての Google Cloud リソースも削除されますが、Cloud Run サービスは削除されません。
ロードバランサ統合を使用するカスタム ドメインを Cloud Run サービスから削除するには:
コンソール
Google Cloud コンソールで [Cloud Run] ページに移動します。
統合を削除するサービスをクリックします。
[統合] タブをクリックします。
目的のロードバランサを統合しているカスタム ドメインを見つけて、そのインテグレーションの右側にある省略記号をクリックし、[削除] をクリックします。
gcloud
利用可能なインテグレーションのリストを取得するには、次のコマンドを使用します。
gcloud beta run integrations list
返されたリストの名前を使用して、インテグレーションを削除します。
gcloud beta run integrations delete INTEGRATION_NAME
次のように置き換えます。
- INTEGRATION_NAME は、ロードバランサ インテグレーションを使用しているカスタム ドメインの名前に置き換えます。
必要に応じて、次のフラグ オプションを使用できます。
オプション 説明 --service-account
削除オペレーションを実行するユーザー管理のサービス アカウントのメールアドレス。
制限事項
Cloud Run インテグレーションは、特定のリージョンでのみサポートされています。Cloud Run インテグレーションでサポートされていないリージョンを使用する必要がある場合は、Cloud Run を使用したグローバル外部アプリケーション ロードバランサの設定をご覧ください。