ラベルの使用

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、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 構成の template 属性の google_cloud_run_service リソースに以下を追加します。これにより、foo(値は bar)と baz(値は quux)の 2 つのラベルが Cloud Run インスタンスに適用されます。

metadata {
  # Labels
  # https://cloud.google.com/run/docs/configuring/labels
  labels = {
    foo : "bar"
    baz : "quux"
  }
}

Google Cloud プロジェクトで Terraform 構成を適用するには、次の手順を行います。

  1. Cloud Shell を起動します。
  2. Terraform 構成を適用する Google Cloud プロジェクトを設定します。
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. ディレクトリを作成し、そのディレクトリで新規ファイルを開きます。ファイル名には .tf 拡張子が必要です(例: main.tf)。
    mkdir DIRECTORY && cd DIRECTORY && nano main.tf
    
  4. サンプルを main.tf にコピーします。
  5. 環境に適用するサンプル パラメータを確認し、変更します。
  6. Ctrl-x を押してから y を押して、変更を保存します。
  7. Terraform を初期化します。
    terraform init
  8. 構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
    terraform plan

    必要に応じて構成を修正します。

  9. 次のコマンドを実行します。プロンプトで「yes」と入力して、Terraform 構成を適用します。
    terraform apply

    Terraform に「Apply complete!」のメッセージが表示されるまで待ちます。

  10. Google Cloud プロジェクトを開いて結果を表示します。Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。

Cloud Run ジョブの場合

Cloud Run ジョブにラベルを設定するには:

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

    gcloud beta 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 beta run jobs update JOB_NAME --labels KEY=VALUE

複数のラベルを更新するには、Key-Value ペアのカンマ区切りリストを指定します。

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

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

  gcloud run services 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 は、ラベルの名前に置き換えます。