ラベルの使用

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

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

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

ラベルの使用ルール

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

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

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

Cloud Run のサービスとジョブにラベルを設定できます。

Cloud Run サービスの場合

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

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

コンソール

  1. Cloud Run に移動します

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

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

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

    ラベルを設定

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

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

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

コマンドライン

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

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

既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順に沿ってフィールドを変更し、gcloud run services replace コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    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_service リソースを使用しています。

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

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

  template {
    spec {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/hello"
      }
    }
    metadata {
      # Labels
      # https://cloud.google.com/run/docs/configuring/labels
      labels = {
        foo : "bar"
        baz : "quux"
      }
    }
  }
}

以下のように置き換えます。

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

Cloud Run ジョブの場合

Google Cloud CLI または YAML を使用して、Cloud Run ジョブにラベルを設定できます。

コマンドライン

  1. 新しいジョブにラベルを設定するには:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --labels KEY=VALUE

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

    • JOB_NAME は、ジョブの名前に置き換えます。
    • KEY は、ラベルキーの名前に置き換えます。
    • VALUE は、キーの値に置き換えます。
    • IMAGE_URL は、コンテナ イメージへの参照(us-docker.pkg.dev/cloudrun/container/job:latest など)に置き換えます。
  2. 既存のジョブにラベルを設定するには:

    gcloud run jobs update JOB_NAME --labels KEY=VALUE
  3. 複数のラベルを更新するには、Key-Value ペアのカンマ区切りリストを指定します。

    gcloud run jobs update JOB_NAME --labels KEY1=VALUE1,KEY2=VALUE2 

YAML

gcloud run jobs describe --format export コマンドを使用して既存のジョブ構成をダウンロードして表示します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記のフィールドを変更して、gcloud run jobs replace コマンドで変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 2 か所で labels 属性を更新します。

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      labels:
        LABEL: VALUE
    spec:
      template:
        metadata:
          labels:
            LABEL: VALUE

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

    • LABEL は、ラベルの名前に置き換えます。
    • VALUE は、目的の値に置き換えます。

    環境変数やメモリ上限など他の構成を指定することもできます。

  3. 既存のジョブ構成を更新します。

    gcloud run jobs replace job.yaml

ラベル別にサービスまたはジョブを一覧表示する

Google Cloud CLI フィルタを使用し、ラベルを指定してサービスまたはジョブを一覧表示できます。

サービスの場合:

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

ジョブの場合:

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

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

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

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

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

コンソール

  1. Cloud Run に移動します

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

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

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

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

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

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

コマンドライン

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

gcloud run services update SERVICE --clear-labels

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

gcloud run services update SERVICE --remove-labels LABEL

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

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

ジョブのラベルを削除する

ジョブからラベルをすべて消去するには:

gcloud run jobs update JOB --clear-labels

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

gcloud run jobs update JOB --remove-labels LABEL

Replace

  * <var>JOB</var> with name of your Cloud Run service
  * <var>LABEL</var> with the name of your label