管理サービス

このページでは、サービスを作成する方法とサービスの情報を表示する方法について説明します。

各サービスには一意で永続的な 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 コマンドラインを使用して、プロジェクトで使用可能なサービスの一覧を表示できます。

コンソール

サービスリストを表示するには:

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

    Cloud Run に移動

  2. プロジェクトに表示されたサービスのリストを調べます。

    サービスのリスト

gcloud

プロジェクトのサービスを一覧取得するには:

gcloud run services list

サービスには URL が関連付けられています。

割り当てられたラベルなど、サービス定義のプロパティを基準にこのリストをフィルタできます。

Cloud Code

Cloud Code でサービスを一覧取得するには、IntelliJVisual 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 コンソールを使用して、プロジェクトで使用可能な関数のリストを表示できます。

コンソール

サービスリストの関数をフィルタするには:

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

    Cloud Run に移動

  2. プロジェクトに表示されたサービスのリストを調べます。

    サービスのリスト

  3. [サービスをフィルタ] > [デプロイタイプ] > [関数] を選択します。

    以前に Cloud Functions(第 2 世代 API)を使用して関数をデプロイした場合は、[デプロイしたユーザー] 列に「Cloud Functions」と表示されます。

サービスをコピーする

Google Cloud コンソールまたは YAML を使用して、既存のサービスのコピーを作成できます。名前やリージョンなど、コピーに含まれる任意の要素を変更できます。

コンソール

サービスをコピーするには:

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

    Cloud Run に移動

  2. プロジェクトに関して表示されるサービスのリストから、コピーするサービスを選択します。

    サービスのリスト

    1. [コピー] をクリックします。

    2. サービスのコピーのページで、必要に応じて値(リージョンなど)を設定または変更します。同じリージョンを保持する場合は、サービスに新しい名前を付ける必要があります。

    3. [作成] をクリックするとコピーが作成され、新しいサービス名を使ってそれがデプロイされます。

YAML

  1. 新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その YAML 構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. 必要に応じてサービスの構成を変更します。

     apiVersion: serving.knative.dev/v1
     kind: Service
     metadata:
       annotations:
         ...
       name: SERVICE
       ...
     spec:
       template:
         metadata:
           annotations:
           ...
           name: REVISION
    
    • コピーを別のリージョンにデプロイしない場合は、SERVICE を、そのコピーに使用する名前に置き換えます。コピーを別のリージョンにデプロイする場合は、元の名前を使用できます。
    • REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります
      • SERVICE- で始まる
      • 小文字、数字、- のみが使用されている
      • 末尾が - ではない
      • 63 文字以内である
  3. 次のコマンドを使用してサービスをコピーします。

    gcloud run services replace service.yaml

    コピーを別のリージョンにデプロイするには、--region フラグを使用します。

サービスの詳細を表示する

サービスの詳細を表示するには、次の操作を行います。

コンソール

サービスの詳細を表示するには:

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

    Cloud Run に移動

  2. 表示されているサービスの一覧で目的のサービスをクリックし、サービスの詳細ビューを開きます。

gcloud

サービスの詳細を表示するには:

gcloud run services describe SERVICE
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 でサービスの詳細を表示するには、IntelliJVisual 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 を使用して無効にできます。

コンソール

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

    Cloud Run に移動

  2. 無効にするサービスをクリックして詳細パネルを表示し、詳細パネルの右上にある [スケーリング] の横にある鉛筆アイコンをクリックします。

  3. [スケーリングを編集] フォームを見つけて、[手動スケーリング] を選択します。

    画像

    [インスタンス数] フィールドに値 0(ゼロ)を入力します。

  4. [保存] をクリックします。

gcloud

サービスを無効にするには、次のコマンドを使用してスケーリングをゼロに設定します。

gcloud beta run services update SERVICE --scaling=0

SERVICE は、実際のサービス名に置き換えます。

YAML

  1. サービスの YAML 構成をダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. 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 サービスの名前に置き換えます。

  3. 次のコマンドを使用して、サービスを作成または更新します。

    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 が使用されます。

コンソール

サービスを削除するには:

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

    Cloud Run に移動

  2. 削除するサービスをサービスリストで探し、そのチェックボックスをクリックして選択します。

  3. [削除] をクリックします。これにより、サービスのすべてのリビジョンが削除されます。

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 に置き換えます。