このページでは、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 ファイルを使用してラベルを設定または変更できます。
コンソール
ラベルを設定するサービスの左側にあるチェックボックスをオンにします。
右端の情報パネルがオンになっていることを確認します(情報パネルを表示)。
[ラベル] をクリックして、ラベルペインを表示します。
既存のラベル Key-Value を編集するには、ラベルを探して、値を必要に応じて変更します。
サービスに新しいラベルを設定するには、[ラベルを追加] をクリックしてキーと値を指定します。
[保存] をクリックします。
コマンドライン
次のコマンドを使用して、サービスのラベルを更新できます。
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 ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。
次のコマンドで、構成を表示してダウンロードします。
gcloud run services describe SERVICE --format export > service.yaml
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
は作成されたリビジョンにラベルを設定します。リビジョンに設定されたラベルのみがログと請求に渡されます。次のコマンドを使用して、サービスを新しい構成に置き換えます。
gcloud run services replace service.yaml
Terraform
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
次のスニペットでは、foo
(値は bar
)とbaz
(値は quux
)の 2 つのラベルが Cloud Run インスタンスに追加され、Terraform の構成にある google_cloud_run_service
リソースを使用しています。
以下に示すように、template
の下にラベルを追加すると、リビジョンのラベルが設定されます。リビジョンに設定されたラベルのみがログと請求に渡されます。template
以外の場所にラベルを追加すると、リビジョンではなくサービスにラベルが設定されます。
以下のように置き換えます。
name
プロパティは、実際のサービスの名前に置き換えます。location
プロパティは、サービスに使用するロケーションに置き換えます。image
プロパティは、コンテナ イメージに置き換えます。foo
とbaz
は、独自のラベル名に置き換えます。bar
とquux
は、独自のラベル値に置き換えます。
Cloud Run ジョブの場合
Google Cloud CLI または YAML を使用して、Cloud Run ジョブにラベルを設定できます。
コマンドライン
新しいジョブにラベルを設定するには:
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
など)に置き換えます。
既存のジョブにラベルを設定するには:
gcloud run jobs update JOB_NAME --labels KEY=VALUE
複数のラベルを更新するには、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 ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。
次のコマンドで、構成を表示してダウンロードします。
gcloud run jobs describe JOB_NAME --format export > job.yaml
2 か所で
labels
属性を更新します。apiVersion: run.googleapis.com/v1 kind: Job metadata: labels: LABEL: VALUE spec: template: metadata: labels: LABEL: VALUE
次のように置き換えます。
- LABEL は、ラベルの名前に置き換えます。
- VALUE は、目的の値に置き換えます。
環境変数やメモリ上限など他の構成を指定することもできます。
既存のジョブ構成を更新します。
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 は、フィルタ後のリストに含める値に置き換えます。
サービスのラベルを削除する
サービスのラベルを削除するには、コンソールまたはコマンドラインを使用します。
コンソール
ラベルを削除するサービスの左側にあるチェックボックスをオンにします。
右端の情報パネルがオンになっていることを確認します(情報パネルを表示)。
[ラベル] をクリックして、ラベルペインを表示します。
削除するラベルを見つけます。
ラベルの [値] テキストボックスの右にカーソルを合わせ、表示されるゴミ箱アイコンをクリックします。
[保存] をクリックします。
コマンドライン
サービスからラベルをすべて消去するには:
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