为实例添加标签

本页面介绍了标签。其中介绍了如何创建带有标签的实例、如何添加/更新/移除标签,以及如何在搜索中使用标签。

标签是将相互关联的实例组合在一起的一种简洁方式。例如,您可以根据实例是要用作测试实例还是生产实例来为其添加标签,也可以将您自己的结算代码添加到实例中。您可以使用标签搜索实例或跟踪实例费用。

您所添加的标签始终为键值对形式:

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

修改标签对 Cloud SQL 实例性能没有影响。

如需了解详情,请参阅“什么是标签?”标签要求

限制

  • 您最多可为每个实例分配 64 个标签。
  • 标签的键和值必须遵循以下限制:

    • 键和值的长度均不能超过 63 个字符。
    • 键和值只能包含小写字母、数字字符、下划线和短划线。允许使用国际字符。
    • 标签键必须以小写字母开头。
    • 标签键不能为空。

创建带有标签的实例

使用 gcloud 命令行工具或 API 创建新实例时,您可以对该实例应用标签。

gcloud

在创建实例时,请添加 --labels 标志,并后接以英文逗号分隔的标签键值对列表。您必须使用 Beta 版 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"},
  ....

为现有实例添加或更新标签

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 选中要添加标签的资源旁边的复选框。

  3. 点击右上角的显示信息面板以展开标签列。

  4. 根据需要更新标签或添加新标签。

  5. 保存更改。

gcloud

使用 patch 子命令(Beta 版)为现有实例更新或添加标签:

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 方法:

gcloud auth login
ACCESS_TOKEN="$(gcloud auth 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>

如果您提供的标签键已经存在,则该工具将使用新标签值更新现有键。如果您提供的是新键,则该工具会将新键添加到标签列表中。只有指定的标签会受到影响;请求中未包含的现有标签将保持不变。

移除标签

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 选中要移除标签的资源旁边的复选框。

  3. 点击显示信息面板以展开标签列。

  4. 点击要移除的所有标签旁边的 X

  5. 保存更改。

gcloud

使用 gcloud 命令行工具运行带有 --remove-labels 标志的 patch 子命令(Beta 版):

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

如果您提供的标签名称不存在,此工具不会返回错误。

curl

要使用 API 移除标签,请将标签的值设置为 null

gcloud auth login
ACCESS_TOKEN="$(gcloud auth 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] 语法。例如,如果要按值为 34802billing-code 标签进行过滤,可以运行以下命令:

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 中,借助使用网址编码的 filter 查询参数发出 list 请求。

gcloud auth login
ACCESS_TOKEN="$(gcloud auth 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

如果包含的两个标签值之间存在(编码)空格,那么这两个标签值必须均为 true 才能返回实例(AND 运算)。 您也可以明确提供 ANDORNOT 运算符。例如:

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

后续步骤