インスタンスにラベルを付ける

ラベルは互いに関連するインスタンスを簡単にグループ化するための方法です。たとえば、テストまたは本番環境のいずれで使用するかに応じてインスタンスにラベルを付けたり、インスタンスに独自の請求コードを追加したりできます。ラベルを使用して、インスタンスを検索したり、インスタンスの料金を追跡することもできます。

ラベルは常に Key-Value ペアとして追加します。

{
 "userLabels": {
    "track": "production",
    "location": "western-division"
    "billing-code": "34802",...
 }

制限事項

  • 各インスタンスには最大 64 個のラベルを割り当てることができます。
  • ラベルのキーと値には次の制限があります。

    • キーと値は、それぞれ 63 文字以下にする必要があります。
    • キーと値に使用できるのは、小文字、数字、アンダースコア、ダッシュだけです。国際文字も使用できます。
    • ラベルのキーは小文字で始める必要があります。
    • ラベルのキーは空にできません。

ラベル付きインスタンスを作成する

gcloud コマンドライン ツールまたは API を使用して新しいインスタンスを作成する際、インスタンスにラベルを適用できます。

gcloud

インスタンスを作成するときに、--labels フラグを指定し、それに続けてラベルの Key-Value ペアをカンマ区切りのリストとして指定します。ラベルを含めるには、create コマンドのベータ版を使用する必要があります。

例:

gcloud beta sql instances create ... --labels track=production,billing-code=34802

curl

API で、新しいインスタンスを追加する POST リクエストを発行するときに、リクエストの本文中に userLabels プロパティを追加して新しいインスタンスにラベルを適用します。たとえば、インスタンスを作成するためのリクエスト本文には、次のようにラベルを指定します。

  ....
  "settings": {"tier":"db-n1-standard-2",
               "userLabels": {"track": "production",
                              "location": "western-division",
                              "billing-code": "34802"},
  ....

既存のインスタンスでラベルを追加または更新する

Console

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    Cloud SQL インスタンス ページに移動

  2. ラベルを付けるリソースの横のチェックボックスをオンにします。

  3. 右上隅の [情報パネルを表示] をクリックして、ラベル列を展開します。

  4. 必要に応じて、ラベルを更新したり、新しいラベルを追加したりします。

  5. 変更を保存します。

gcloud

patch サブコマンド(ベータ版)を使用して、既存のインスタンスでラベルを更新または追加します。

gcloud beta sql instances patch [INSTANCE_NAME] --update-labels [KEY1]=[VALUE1]...

例:

gcloud beta sql instances patch my-instance --update-labels track=production,billing-code=34802

すでに存在するラベルキーを指定すると、ツールは既存のキーを新しいラベル値で更新します。新しいキーを指定すると、新しいキーがラベルのリストに追加されます。指定したラベルのみが影響を受けます。コマンドに含まれていない既存のラベルは変更されません。

curl

ラベルを追加または更新するには、PATCH メソッドを使用します。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings" : {"userLabels" :
                              {"<LABEL1>" : "<VALUE1>", "<LABEL2>" : "<VALUE2>"}}}' \
    -X PATCH \
    https://www.googleapis.com/sql/v1beta4/projects/<PROJECT-ID>/instances/<INSTANCE_NAME>

すでに存在するラベルキーを指定すると、ツールは既存のキーを新しいラベル値で更新します。新しいキーを指定すると、新しいキーがラベルのリストに追加されます。指定したラベルのみが影響を受けます。リクエストに含まれていない既存のラベルは変更されません。

ラベルの削除

Console

  1. Google Cloud Platform Console で Cloud SQL インスタンス ページに移動します。

    Cloud SQL インスタンス ページに移動

  2. ラベルを削除するリソースの横にあるチェックボックスをオンにします。

  3. [情報パネルを表示] をクリックして、ラベルの列を展開します。

  4. 削除するラベルの横にある X をすべてクリックします。

  5. 変更を保存します。

gcloud

gcloud コマンドライン ツールを使用して、patch サブコマンド(ベータ版)に --remove-labels フラグを指定して実行します。

gcloud beta sql instances patch [INSTANCE_NAME] --remove-labels [LABEL1],[LABEL2]

存在しないラベル名を指定しても、エラーは返されません。

curl

API を使用してラベルを削除するには、ラベルの値を null に設定します。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings": {"userLabels": {"[LABEL_NAME]": null}}}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/[INSTANCE_NAME]

ラベルを使用したインスタンス検索結果のフィルタリング

gcloud ツールまたは API を使用して、インスタンス リストの結果をラベルでフィルタリングできます。

gcloud

gcloud では、list リクエストを作成し、--filter フラグを使用します。ラベルでフィルタリングを行うには、構文 labels.[KEY]:[VALUE] を使用します。たとえば、ラベル billing-code34802 の値を指定してフィルタリングする場合は、次のコマンドを実行します。

gcloud beta sql instances list --filter='labels.billing-code:34802'

ラベルの値に関係なく、ラベルが存在するかどうかでフィルタリングする場合は、次のコマンドを実行します。

gcloud beta sql instances list --filter='labels:billing-code'

gcloud ツールでのフィルタ構文の詳細については、gcloud topic filters のドキュメントをご覧ください。

curl

API で list リクエストを作成し、URL エンコードされた filter クエリ パラメータを指定します。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/list?filter=userLabels.[KEY1_NAME]:[KEY1_VALUE]%20userLabels.[KEY2_NAME]:[KEY2_VALUE]

例:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/list?filter=userLabels.track:production%20userLabels.billing-code:34802

(エンコードされた)スペースで連結された 2 つのラベル値がフィルタに含まれている場合、両方のラベルがともに true であるときのみインスタンスが返されます(AND 演算)。また、AND 演算子、OR 演算子、NOT 演算子を明示的に指定することもできます。次に例を示します。

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/list?filter=userLabels.track:production%20OR%20userLabels.billing-code:34802

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...