このページでは、サービスを作成する方法とサービスの情報を表示する方法について説明します。
各サービスには一意で永続的な run.app
URL があります。この URL は、新しいリビジョンをサービスにデプロイしても変わりません。Cloud Run にデプロイされた関数もサービスとして扱われ、run.app
アドレスが割り当てられます。サービスの永続ドメインは、サービス名とハッシュで構成されます。
必要なロール
Cloud Run のサービスとリビジョンを管理するために必要な権限を取得するには、Cloud Run サービスに対する Cloud Run デベロッパー(roles/run.developer
)IAM ロールを付与するよう管理者に依頼してください。
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスがGoogle Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
サービスを作成する
コンテナ イメージを最初にデプロイするときに、新しいサービスが作成されます。新しいサービスをデプロイする場合は、これよりも操作が多くなります。
プロジェクト内のサービスのリストを表示する
プロジェクトで使用可能なサービスの一覧を表示するには、Google Cloud コンソールまたは gcloud コマンドラインを使用します。
コンソール
サービスリストを表示するには:
Google Cloud コンソールで Cloud Run に移動します。
プロジェクトに表示されたサービスのリストを調べます。
gcloud
プロジェクトのサービスを一覧取得するには:
gcloud run services list
サービスには URL が関連付けられています。
割り当てられたラベルなど、サービス定義のプロパティを基準にこのリストをフィルタできます。
Cloud Code
Cloud Code でサービスを一覧取得するには、IntelliJ と Visual Studio Code に関する Cloud Run Explorer ガイドをご覧ください。
クライアント ライブラリ
コードからサービスのリストを表示するには:
REST API
プロジェクト内のサービスの一覧を表示するには、GET
HTTP リクエストを Cloud Run Admin API の service
エンドポイントに送信します。
curl
の使用例を次に示します。
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services
次のように置き換えます。
- ACCESS_TOKEN は、サービスを表示する IAM 権限を持つアカウントの有効なアクセス トークンに置き換えます。たとえば、gcloud にログインしている場合は、
gcloud auth print-access-token
を使用してアクセス トークンを取得できます。Cloud Run コンテナ インスタンスから、コンテナ インスタンス メタデータ サーバーを使用してアクセス トークンを取得できます。 - REGION は、サービスの Google Cloud リージョンに置き換えます。
- PROJECT-ID は、 Google Cloud プロジェクト ID に置き換えます。
プロジェクト内の関数のリストを表示する
Google Cloud コンソールを使用して、プロジェクトで使用可能な関数のリストを表示できます。
コンソール
サービスリストの関数をフィルタするには:
Google Cloud コンソールで Cloud Run に移動します。
プロジェクトに表示されたサービスのリストを調べます。
[サービスをフィルタ] > [デプロイタイプ] > [関数] を選択します。
以前に Cloud Functions(第 2 世代 API)を使用して関数をデプロイした場合は、[デプロイしたユーザー] 列に「Cloud Functions」と表示されます。
サービスをコピーする
Google Cloud コンソールまたは YAML を使用して、既存のサービスのコピーを作成できます。名前やリージョンなど、コピーに含まれる任意の要素を変更できます。
コンソール
サービスをコピーするには:
Google Cloud コンソールで Cloud Run に移動します。
プロジェクトに関して表示されるサービスのリストから、コピーするサービスを選択します。
[コピー] をクリックします。
サービスのコピーのページで、必要に応じて値(リージョンなど)を設定または変更します。同じリージョンを保持する場合は、サービスに新しい名前を付ける必要があります。
[作成] をクリックするとコピーが作成され、新しいサービス名を使ってそれがデプロイされます。
YAML
新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その YAML 構成をダウンロードします。
gcloud run services describe SERVICE --format export > service.yaml
必要に応じてサービスの構成を変更します。
apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: ... name: SERVICE ... spec: template: metadata: annotations: ... name: REVISION
- コピーを別のリージョンにデプロイしない場合は、SERVICE を、そのコピーに使用する名前に置き換えます。コピーを別のリージョンにデプロイする場合は、元の名前を使用できます。
- REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります。
SERVICE-
で始まる- 小文字、数字、
-
のみが使用されている - 末尾が
-
ではない - 63 文字以内である
次のコマンドを使用してサービスをコピーします。
gcloud run services replace service.yaml
コピーを別のリージョンにデプロイするには、
--region
フラグを使用します。
サービスの詳細を表示する
サービスの詳細を表示するには、次の操作を行います。
コンソール
サービスの詳細を表示するには:
Google Cloud コンソールで Cloud Run に移動します。
表示されているサービスの一覧で目的のサービスをクリックし、サービスの詳細ビューを開きます。
gcloud
サービスの詳細を表示するには:
gcloud run services describe SERVICE
--format
フラグを使用して出力をフォーマットできます。たとえば、YAML としてフォーマットします。
gcloud run services describe SERVICE --region REGION --format yaml
次のように置き換えます。
- SERVICE は、サービスの名前に置き換えます。
- REGION は、サービスの Google Cloud リージョンに置き換えます。
--format export
を使用すると、自動生成のラベルやステータスを含まない YAML としてエクスポートできます。
gcloud run services describe SERVICE --region REGION --format export
--format
フラグを使用して、サービスの URL を取得することもできます。
gcloud run services describe SERVICE --region REGION --format='value(status.url)'
Cloud Code
Cloud Code でサービスの詳細を表示するには、IntelliJ と Visual Studio Code に関する Cloud Run Explorer ガイドをご覧ください。
サービスのリビジョンの詳細については、リビジョンの管理をご覧ください。
クライアント ライブラリ
コードからサービスの詳細を表示するには:
REST API
サービスの詳細を表示するには、GET
HTTP リクエストを Cloud Run Admin API の service
エンドポイントに送信します。
curl
の使用例を次に示します。
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
次のように置き換えます。
- ACCESS_TOKEN は、サービスの詳細を表示する IAM 権限を持つアカウントの有効なアクセス トークンに置き換えます。たとえば、gcloud にログインしている場合は、
gcloud auth print-access-token
を使用してアクセス トークンを取得できます。Cloud Run コンテナ インスタンスから、コンテナ インスタンス メタデータ サーバーを使用してアクセス トークンを取得できます。 - SERVICE-NAME は、サービスの名前に置き換えます。
- REGION: サービスの Google Cloud リージョン。
- PROJECT-ID は、 Google Cloud プロジェクト ID に置き換えます。
既存のサービスを無効にする
既存の Cloud Run サービスとリビジョンを無効にするために必要な権限を取得するには、プロジェクトに対する Cloud Run 管理者(roles/run.admin
)IAM ロールを付与するよう管理者に依頼してください。
サービスを無効にしても、現在処理中のリクエストは完了できます。ただし、サービス URL に対するその後のリクエストは失敗し、Service unavailable
または Service disabled
のエラーが発生します。
トラフィック タグが原因でのみアクティブになっているサービス リビジョンへのリクエストは、リビジョンが無効になっていないため影響を受けません。
サービスを無効にするには、スケーリングをゼロに設定します。サービスは、 Google Cloud コンソール、Google Cloud CLI、YAML ファイル、または API を使用して無効にできます。
コンソール
Google Cloud コンソールで Cloud Run に移動します。
無効にするサービスをクリックして詳細パネルを表示し、詳細パネルの右上にある [スケーリング] の横にある鉛筆アイコンをクリックします。
[スケーリングを編集] フォームを見つけて、[手動スケーリング] を選択します。
[インスタンス数] フィールドに値
0
(ゼロ)を入力します。[保存] をクリックします。
gcloud
サービスを無効にするには、次のコマンドを使用してスケーリングをゼロに設定します。
gcloud beta run services update SERVICE --scaling=0
SERVICE は、実際のサービス名に置き換えます。
YAML
サービスの YAML 構成をダウンロードします。
gcloud run services describe SERVICE --format export > service.yaml
manualInstanceCount
属性をゼロ(0
)に設定します。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA run.googleapis.com/scalingMode: manual run.googleapis.com/manualInstanceCount: `0`
SERVICE は、Cloud Run サービスの名前に置き換えます。
次のコマンドを使用して、サービスを作成または更新します。
gcloud run services replace service.yaml
REST API
サービスを無効にするには、Cloud Run Admin API の service
エンドポイントに PATCH
HTTP リクエストを送信します。
curl
の使用例を次に示します。
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{"launchStage":"BETA","scaling":{"manualInstanceCount":0 }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=launchStage,scaling.manualInstanceCount
次のように置き換えます。
- ACCESS_TOKEN は、サービスを更新する IAM 権限を持つアカウントの有効なアクセス トークンに置き換えます。たとえば、
gcloud
にログインしている場合は、gcloud auth print-access-token
を使用してアクセス トークンを取得できます。Cloud Run コンテナ インスタンスから、コンテナ インスタンス メタデータ サーバーを使用してアクセス トークンを取得できます。 - SERVICE は、サービスの名前に置き換えます。
- REGION は、サービスがデプロイされている Google Cloud リージョンに置き換えます。
- PROJECT_ID は、 Google Cloud プロジェクト ID に置き換えます。
既存のサービスを削除する
サービスを削除する場合は、次の点に注意してください。
- サービスを削除すると、トラフィック処理中であるかどうかにかかわらず、このサービスに関連するすべてのリソースが削除されます。このサービスのリビジョンもすべて削除されます。
- サービスを削除しても、Artifact Registry からコンテナ イメージが自動的に削除されることはありません。削除されたリビジョンで使用されているコンテナ イメージを Artifact Registry から削除するには、イメージの削除をご覧ください。
- 1 つ以上の Eventarc トリガーを持つサービスを削除しても、これらのトリガーは自動的に削除されません。トリガーを削除するには、トリガーを管理するをご覧ください。
- 削除が完全に完了するまで、 Google Cloud コンソールとコマンドライン インターフェースにはサービスが表示されています。ただし、サービスの更新はできません。
サービスは完全に削除されます。元に戻すことも、復元することもできません。サービスを削除した後、同じリージョンに同じ名前のサービスを新たにデプロイすると、同じエンドポイント URL が使用されます。
コンソール
サービスを削除するには:
Google Cloud コンソールで Cloud Run に移動します。
削除するサービスをサービスリストで探し、そのチェックボックスをクリックして選択します。
[削除] をクリックします。これにより、サービスのすべてのリビジョンが削除されます。
gcloud
サービスを削除するには、次のコマンドを使用します。
gcloud run services delete SERVICE --region REGION
次のように置き換えます。
- SERVICE は、実際のサービスの名前に置き換えます。
- REGION は、サービスの Google Cloud リージョンに置き換えます。
クライアント ライブラリ
コードからサービスを削除するには:
REST API
サービスを削除するには、Cloud Run Admin API の service
エンドポイントに DELETE
HTTP リクエストを送信します。
curl
の使用例を次に示します。
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X DELETE \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
次のように置き換えます。
- ACCESS_TOKEN は、サービスを削除する IAM 権限を持つアカウントの有効なアクセス トークンに置き換えます。たとえば、gcloud にログインしている場合は、
gcloud auth print-access-token
を使用してアクセス トークンを取得できます。Cloud Run コンテナ インスタンスから、コンテナ インスタンス メタデータ サーバーを使用してアクセス トークンを取得できます。 - SERVICE-NAME は、サービスの名前に置き換えます。
- REGION: サービスの Google Cloud リージョン。
- PROJECT-ID は、 Google Cloud プロジェクト ID に置き換えます。