Cloud Run ラベルは、Cloud Run サービスとリビジョンに適用される Key-Value ペアです。このページでは、Cloud Run サービスとリビジョンのラベルを設定、変更、削除する方法について説明します。Cloud Run サービスにラベルを設定すると、このラベルの付いた新しいサービス リビジョンがこのサービスに作成されます。古いリビジョンにはラベルは適用されません。
たとえば、次のような用途が考えられます。
- 費用の割り当てと請求の内訳に使用する
- 個々のチームやコストセンターで使用されているリソースを特定する
- デプロイ環境(本番、ステージング、検証、テスト)を区別する
- 所有者、状態のラベルを特定する
- Logging でログをフィルタする
ラベルの使用ルール
Cloud Run サービスで設定されたラベルを使用する場合、次のルールが適用されます。
Cloud Run で使用できるのは、有効な Google Cloud ラベルのみです。
必要なロール
Cloud Run サービスの構成とデプロイに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Run サービスに対する Cloud Run デベロッパー(
roles/run.developer
) -
サービス ID に対するサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスが Google Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
ラベルを設定または変更する
構成を変更すると、新しいリビジョンが作成されます。明示的に更新しない限り、以降のリビジョンでも、この構成が自動的に設定されます。
新しいリビジョンをデプロイするときに、Google Cloud コンソール、gcloud コマンドライン、または YAML ファイルを使用してラベルを設定または変更できます。
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
ラベルを設定するサービスの左側にあるチェックボックスをオンにします。
右端の情報パネルがオンになっていることを確認します(情報パネルを表示)。
[ラベル] をクリックして、ラベルペインを表示します。
既存のラベル Key-Value を編集するには、ラベルを見つけて、値を必要に応じて変更します。
サービスに新しいラベルを設定するには、[ラベルを追加] をクリックしてキーと値を指定します。
[保存] をクリックします。
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
新しいサービスを作成する場合は、この手順をスキップします。既存のサービスを更新する場合は、その 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_v2_service
リソースを使用しています。
次に示すように、template
の下にラベルを追加すると、リビジョンにラベルが設定されます。リビジョンに設定されたラベルのみがログと請求に渡されます。template
以外の場所にラベルを追加すると、リビジョンではなく、サービスに対してラベルが設定されます。
次のように置き換えます。
name
プロパティをサービスの名前で置き換えます。location
プロパティをサービスで使用するロケーションに置き換えます。image
プロパティをコンテナ イメージに置き換えます。foo
とbaz
を独自のラベル名に置き換えます。bar
とquux
を独自のラベル値に置き換えます。
ラベル別にサービスを一覧表示する
Google Cloud CLI フィルタを使用して、ラベル別にサービスを一覧表示できます。
gcloud run services list --filter metadata.labels.LABEL=VALUE
次のように置き換えます。
- LABEL は、ラベルの名前に置き換えます。
- VALUE は、フィルタ後のリストに含める値に置き換えます。
サービスのラベルを削除する
サービスのラベルを削除するには、コンソールまたはコマンドラインを使用します。
コンソール
Google Cloud コンソールで、[Cloud Run] に移動します。
ラベルを削除するサービスの左側にあるチェックボックスをオンにします。
右端の情報パネルがオンになっていることを確認します(情報パネルを表示)。
[ラベル] をクリックして、ラベルペインを表示します。
削除するラベルを見つけます。
ラベルの [値] テキストボックスの右にカーソルを合わせ、表示されるゴミ箱アイコンをクリックします。
[保存] をクリックします。
gcloud
サービスからラベルをすべて消去するには:
gcloud run services update SERVICE --clear-labels
サービスから特定のラベルを削除するには、キーのカンマ区切りリストを指定します。
gcloud run services update SERVICE --remove-labels LABEL
次のように置き換えます。
- SERVICE は、Cloud Run サービスの名前に置き換えます。
- LABEL は、ラベルの名前に置き換えます。