このページでは、個別にアドレス指定可能なシングルトン Cloud Run インスタンスを作成して管理する方法について説明します。受信トラフィックに基づいてスケーリングする Cloud Run サービスとは異なり、インスタンスはライフサイクル遷移(作成、停止、開始、更新、削除)を使用して手動で管理する専用のコンピューティング コンテナです。
サポートされるリージョン
Cloud Run インスタンスは、サポートされているリージョンのいずれかに作成できます。ただし、次のリージョンは除きます。
europe-west1us-central1us-east1
始める前に
設定ページの説明に従って、Cloud Run に新しいプロジェクトを設定します。
Cloud Run Admin API を有効にします。
gcloud services enable run.googleapis.comgcloudコンポーネントを最新バージョンに更新します。gcloud components update
ドメイン制限の組織のポリシーでプロジェクトの未認証呼び出しが制限されている場合は、限定公開サービスのテストの説明に従って、デプロイされたサービスにアクセスする必要があります。
必要なロール
Cloud Run インスタンスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Run インスタンスに対する Cloud Run デベロッパー (
roles/run.developer) - サービス ID に対するサービス アカウント ユーザー(
roles/iam.serviceAccountUser)ロール
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run インスタンスがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
インスタンスの作成
コンテナ イメージをデプロイして、新しいインスタンスを作成できます。名前を指定しない場合は、自動的に生成されます。
gcloud
gcloud beta run instances create コマンドを使用して新しい Cloud Run インスタンスを作成するには:
gcloud beta run instances create INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
gcloud beta run instances deploy コマンドを使用して新しい Cloud Run インスタンスを作成するには:
gcloud beta run instances deploy INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
次のように置き換えます。
INSTANCE_NAME: 作成するインスタンスの名前。インスタンス名は、プロジェクトとリージョン内で一意である必要があります。既存の Cloud Run インスタンスまたはサービスと同じ名前のインスタンスを作成することはできません。IMAGE_URL: コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/instances:latestなど)。REGION: インスタンスを実行している Google Cloud リージョン(europe-west1など)。
クライアント ライブラリ
コードから新しいインスタンスを作成するには:
REST API
新しい Cloud Run インスタンスを作成するには、instances エンドポイントに POST HTTP リクエストを送信します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "containers": [{ "image": "IMAGE_URL", "ports": [{"containerPort": PORT}] }], "ingress": "INGRESS_TRAFFIC_ALL", "invokerIamDisabled": true, "timeout": "3600s" }' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances?instance_id=INSTANCE_NAME"
次のように置き換えます。
IMAGE_URL: コンテナ イメージの URL。PORT: コンテナがリッスンするポート。PROJECT_ID: 実際の Google Cloud プロジェクト ID。REGION: デプロイの Google Cloud リージョン。INSTANCE_NAME: 新しいインスタンスの名前。
インスタンスを作成すると、インスタンスには次の形式の Cloud Run URL が割り当てられます。
https://INSTANCE_NAME-PROJECT_NUMBER.REGION.run.app
インスタンスの更新
コンテナ イメージ、ポート、環境変数などのインスタンスを更新すると、インスタンスが再起動します。
gcloud
gcloud beta run instances update コマンドを使用して Cloud Run インスタンスを更新するには:
gcloud beta run instances update INSTANCE_NAME \ --image NEW_IMAGE_URL \ --region REGION
gcloud beta run instances deploy コマンドを使用して Cloud Run インスタンスを更新するには:
gcloud beta run instances deploy INSTANCE_NAME \ --image IMAGE_URL \ --region REGION
REST API
API から Cloud Run インスタンス構成を更新するには、インスタンス URI エンドポイントに PATCH HTTP リクエストを送信します。
curl -H "Content-Type: application/json" \ -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
インスタンスの停止
実行中の Cloud Run インスタンスを停止するには、停止コマンドまたはメソッドを使用します。
gcloud
インスタンスを停止するには:
gcloud beta run instances stop INSTANCE_NAME \ --region REGION
クライアント ライブラリ
コードから実行中のインスタンスを停止するには:
REST API
インスタンスを停止するには、:stop デコレータを使用して POST HTTP リクエストを送信します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:stop"
インスタンスを起動または再起動する
start コマンドまたはメソッドを使用して、停止したインスタンスを起動するか、既存のインスタンスを強制的に再起動します。
gcloud
インスタンスを起動または再起動するには:
gcloud beta run instances start INSTANCE_NAME \ --region REGION
クライアント ライブラリ
コードから停止されたインスタンスを起動するには:
REST API
インスタンスを起動するには、:start デコレータを使用して POST HTTP リクエストを送信します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:start"
プロジェクト内のインスタンスのリストを表示する
プロジェクト内のアクティブなインスタンスと非アクティブなインスタンスをすべて表示できます。
gcloud
特定のリージョン内のインスタンスを一覧表示するには:
gcloud beta run instances list \ --region REGION
REGION は、インスタンスを実行している Google Cloud リージョンに置き換えます。
クライアント ライブラリ
コードからアクティブなインスタンスと非アクティブなインスタンスを一覧表示するには:
REST API
インスタンスのリストを取得するには、GET HTTP リクエストを送信します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"
インスタンスの詳細情報を表示
describe コマンドまたはメソッドを使用して、構成の詳細と現在のステータスを表示します。
gcloud
インスタンスの説明を取得するには:
gcloud beta run instances describe INSTANCE_NAME \ --region REGION
クライアント ライブラリ
コードからインスタンス構成の詳細とステータスを表示するには:
REST API
インスタンスの詳細を取得するには、GET HTTP リクエストを送信します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
インスタンスを削除する
インスタンスを削除すると、構成、メタデータ、パブリック直接 URL マッピング、ID ロールがプロジェクトから完全に削除されます。
gcloud
インスタンスを削除するには:
gcloud beta run instances delete INSTANCE_NAME \ --region REGION
クライアント ライブラリ
コードからインスタンスを削除するには:
REST API
インスタンスを削除するには、DELETE HTTP リクエストを送信します。
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"
次のステップ
- インスタンスのロギング トランザクションを表示するには、Cloud Run でのログのロギングと表示をご覧ください。
- Cloud Run インスタンスを構成します。