ラベルを構成する

Cloud Run ラベルは、Cloud Run サービスとリビジョンに適用される Key-Value ペアです。このページでは、Cloud Run サービスとリビジョンのラベルを設定、変更、削除する方法について説明します。Cloud Run サービスにラベルを設定すると、このラベルの付いた新しいサービス リビジョンがこのサービスに作成されます。古いリビジョンにはラベルは適用されません。

たとえば、次のような用途が考えられます。

  • 費用の割り当てと請求の内訳に使用する
  • 個々のチームやコストセンターで使用されているリソースを特定する
  • デプロイ環境(本番、ステージング、検証、テスト)を区別する
  • 所有者、状態のラベルを特定する
  • Logging でログをフィルタする

ラベルの使用ルール

Cloud Run サービスで設定されたラベルを使用する場合、次のルールが適用されます。

Cloud Run で使用できるのは、有効な Google Cloud ラベルのみです。

必要なロール

Cloud Run サービスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールCloud Run IAM 権限をご覧ください。Cloud Run サービスが Google Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限アクセスの管理をご覧ください。

ラベルを設定または変更する

構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。

新しいリビジョンをデプロイするときに、Google Cloud コンソール、gcloud コマンドライン、または YAML ファイルを使用してラベルを設定または変更できます。

コンソール

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

    Cloud Run に移動

  2. ラベルを設定するサービスの左側にあるチェックボックスをオンにします。

  3. 右端の情報パネルがオンになっていることを確認します(情報パネルを表示)。

  4. [ラベル] をクリックして、ラベルペインを表示します。

    ラベルを設定

  5. 既存のラベル Key-Value を編集するには、ラベルを見つけて、値を必要に応じて変更します。

  6. サービスに新しいラベルを設定するには、[ラベルを追加] をクリックしてキーと値を指定します。

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

gcloud

次のコマンドを使用して、サービスのラベルを更新できます。

gcloud run services update SERVICE --update-labels KEY=VALUE

複数のラベルを更新するには、Key-Value ペアのカンマ区切りリストを指定します。ラベルがすでに存在する場合、update-labels コマンドはラベルキー用に新しい値を設定します。それ以外の場合は、新しいラベルを作成します。

次のように置き換えます。

  • SERVICE は、Cloud Run サービスの名前に置き換えます。
  • KEY は、ラベルキーの名前に置き換えます。
  • VALUE は、キーの値に置き換えます。

デプロイ中にラベルを設定することもできます。

gcloud run deploy SERVICE --image IMAGE --labels KEY=VALUE

デプロイ中に複数のラベルを作成するには、Key-Value ペアのカンマ区切りのリストを指定します。

YAML

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

    gcloud run services describe SERVICE --format export > service.yaml
  2. 2 か所で labels 属性を更新します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      labels:
        LABEL: VALUE
    spec:
      template:
        metadata:
          labels:
            LABEL: VALUE
          name: REVISION

    次のように置き換えます。

    • SERVICE は、Cloud Run サービスの名前に置き換えます。
    • LABEL は、ラベルの名前に置き換えます。
    • VALUE は、目的の値に置き換えます。
    • REVISION を新しいリビジョン名に置き換えるか、削除(存在する場合)します。新しいリビジョン名を指定する場合は、次の条件を満たす必要があります
      • SERVICE- で始まる
      • 小文字、数字、- のみが使用されている
      • 末尾が - ではない
      • 63 文字以内である

    metadata.labels はサービス オブジェクトにラベルを設定し、spec.template.metadata.label は作成されたリビジョンにラベルを設定します。リビジョンに設定されたラベルのみがログと請求に渡されます。

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

    gcloud run services replace service.yaml

Terraform

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

次のスニペットでは、foo(値は bar)と baz(値は quux)の 2 つのラベルが Cloud Run インスタンスに追加され、Terraform の構成にある google_cloud_run_v2_service リソースを使用しています。

次に示すように、template の下にラベルを追加すると、リビジョンにラベルが設定されます。リビジョンに設定されたラベルのみがログと請求に渡されます。template 以外の場所にラベルを追加すると、リビジョンではなく、サービスに対してラベルが設定されます。

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-labels"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    # Labels
    labels = {
      foo : "bar"
      baz : "quux"
    }
  }
}

次のように置き換えます。

  • name プロパティをサービスの名前で置き換えます。
  • location プロパティをサービスで使用するロケーションに置き換えます。
  • image プロパティをコンテナ イメージに置き換えます。
  • foobaz を独自のラベル名に置き換えます。
  • barquux を独自のラベル値に置き換えます。

ラベル別にサービスを一覧表示する

Google Cloud CLI フィルタを使用して、ラベル別にサービスを一覧表示できます。

  gcloud run services list --filter metadata.labels.LABEL=VALUE
  

次のように置き換えます。

  • LABEL は、ラベルの名前に置き換えます。
  • VALUE は、フィルタ後のリストに含める値に置き換えます。

サービスのラベルを削除する

サービスのラベルを削除するには、コンソールまたはコマンドラインを使用します。

コンソール

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

    Cloud Run に移動

  2. ラベルを削除するサービスの左側にあるチェックボックスをオンにします。

  3. 右端の情報パネルがオンになっていることを確認します(情報パネルを表示)。

  4. [ラベル] をクリックして、ラベルペインを表示します。

  5. 削除するラベルを見つけます。

  6. ラベルの [値] テキストボックスの右にカーソルを合わせ、表示されるゴミ箱アイコンをクリックします。

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

gcloud

サービスからラベルをすべて消去するには:

gcloud run services update SERVICE --clear-labels

サービスから特定のラベルを削除するには、キーのカンマ区切りリストを指定します。

gcloud run services update SERVICE --remove-labels LABEL

次のように置き換えます。

  • SERVICE は、Cloud Run サービスの名前に置き換えます。
  • LABEL は、ラベルの名前に置き換えます。