本指南介绍如何创建和管理 Compute Engine 资源的标记。标记是一种可以附加到 Google Cloud Platform 资源的键值对。标记具有多种用途,包括:
- 根据资源是否有特定标记,视条件允许或拒绝政策。
- 在全球网络防火墙政策和区域级网络防火墙政策中定义来源和目标。
- 按逻辑组织资源。
创建标记并向该标记和资源授予相应的访问权限后,您能够以键值对的形式附加该标记。对于给定键,您只能将一个值附加到资源。例如,如果您附加了 environment: development
标记,则无法附加 environment: production
或 environment: test
标记。每个资源最多可以关联 50 个键值对。
如需将标记附加到资源,您必须创建将标记值关联到 Google Cloud 资源的 TagBinding 资源。如需详细了解标记及其工作原理,请参阅标记概览。
准备工作
- 阅读 Resource Manager 文档中的标记概览。
- 阅读 Resource Manager 文档中的创建和管理标记。
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 虚拟机实例
- 磁盘
- 托管式实例组
- 映像
- 快照
- 大多数网络资源,例如网络、子网、防火墙和 HealthCheck 资源。
- 虚拟机实例
- 磁盘
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
在名称列中,点击要为其添加标记的虚拟机的名称。
在虚拟机实例详情页面中,完成以下步骤:
- 点击修改。
- 在基本部分中,点击管理标记并为实例添加所需的标记。
- 点击保存。
- LOCATION_NAME:目标资源所在的区域,例如
us-central1
- TAGVALUE_ID:标记值的数字 ID
- PROJECT_NUMBER:您的项目的数字 ID
- ZONE:可用区名称,例如
us-central1-a
- VM_ID:虚拟机实例的数字 ID
- LOCATION:目标资源所属的位置
- PROJECT_NUMBER:您的项目的数字 ID
- ZONE:可用区名称,例如
us-central1-a
- VM_ID:虚拟机的数字 ID
- TAGVALUE_ID:所附加的标记值的永久 ID,例如
4567890123
- TAGVALUE_NAMESPACED_NAME 是所附加的标记值的命名空间名称,格式为
parentNamespace/tagKeyShortName/tagValueShortName
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
点击管理标记和标签。
点击添加标记。
按照侧边栏中的说明选择要添加到实例的标记。
点击保存。
完成创建并启动虚拟机实例中的其他步骤,以完成实例的创建。
- INSTANCE_NAME:实例的名称
- TAGKEY_ID:标记键编号数字 ID
- TAGVALUE_ID:所附加的标记值的永久数字 ID,例如:
4567890123
- INSTANCE_NAME:实例的名称
- TAGKEY_ID:标记键编号数字 ID
- TAGVALUE_ID:所附加的标记值的永久数字 ID,例如:
4567890123
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
在名称列中,点击要为其添加标记的虚拟机的名称。
在虚拟机实例详情页面中,完成以下步骤:
- 点击修改。
- 在基本部分中,点击管理标记并为实例移除所需标记。
- 点击保存。
- LOCATION_NAME:目标资源所在的区域,例如
us-central1
- TAGVALUE_ID:标记键的数字 ID
- PROJECT_NUMBER:您的项目的数字 ID
- ZONE:可用区名称,例如
us-central1-a
- VM_ID:虚拟机实例的数字 ID
TAGBINDINGS_NAME 是 TagBinding 的永久 ID,例如
tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456
。LOCATION 是资源的区域端点,例如
us-central1
。在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
在名称列中,点击要查看其标记的虚拟机的名称。
在虚拟机实例详情页面中的标记部分下,查找标记。
- LOCATION_NAME:目标资源所在的区域,例如
us-central1
- PROJECT_NUMBER:您的项目的数字 ID
- ZONE:可用区名称,例如
us-central1-a
- VM_ID:虚拟机实例的数字 ID
- LOCATION_NAME:目标资源所在的区域,例如
us-central1
- PROJECT_NUMBER:您的项目的数字 ID
- ZONE:可用区名称,例如
us-central1-a
- VM_ID:虚拟机实例的数字 ID
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
权限
如需管理 Compute Engine 资源的标记,用户和服务账号应具有
tagUser
角色。如需详细了解tagUser
角色,请参阅所需权限。支持的资源
以下资源仅在创建资源后支持标记:
以下资源还支持在资源创建期间进行标记:
向资源添加标记
创建资源后,您可以按照以下说明将现有标记附加到某些资源。
控制台
根据资源类型,确切的步骤可能略有不同。例如,以下步骤会将标记附加到虚拟机:
gcloud
如需查看有关如何使用这些标志的详细说明,请参阅 Resource Manager 文档中的将标记附加到资源。
例如,以下命令会将标记附加到虚拟机:
gcloud resource-manager tags bindings create \ --location LOCATION_NAME \ --tag-value=tagValues/TAGVALUE_ID \ --parent=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
请替换以下内容:
API
要将标记附加到资源,必须首先创建标记绑定的 JSON 表示法,其中包含标记值的永久 ID 或命名空间名称以及资源的永久 ID。如需详细了解标记绑定的格式,请参阅 TagBinding 参考文档。
如需将标记附加到可用区级资源(例如虚拟机实例),请将
tagBindings.create
方法与资源所在的区域级端点配合使用。例如:POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
请求正文可以是以下内容之一:
{ "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID", "tagValue": "tagValue/TAGVALUE_ID" }
或以下内容:
{ "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID", "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME }
请替换以下内容:
在创建资源期间向资源添加标记
在某些情况下,建议您在创建资源期间标记资源,而不是在创建资源之后。例如,建议您在创建 Cloud 新一代防火墙资源时为网络政策应用防火墙标记。
控制台
根据资源类型,确切的步骤可能略有不同。 以下步骤适用于虚拟机:
gcloud
如需在资源创建期间将标记附加到资源,请在相应的
create
命令后添加--resource-manager-tags
标志。例如,如需将标记附加到虚拟机,请使用以下命令:gcloud compute instances create INSTANCE_NAME --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID
请替换以下内容:
通过使用英文逗号分隔标记来指定多个标记,例如
TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2
。API
对下面的网址发出
POST
请求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
添加以下请求 JSON 正文:
{ "name": INSTANCE_NAME, "params": { "resourceManagerTags": { "tagKeys/TAGKEY_ID: "tagValues/TAGVALUE_ID", }, } // other fields omitted }
请替换以下内容:
从资源分离标记
您可以通过删除标记绑定资源,从资源分离标记。
如需查看有关如何分离标记的说明,请参阅 Resource Manager 文档中的从资源分离标记。
控制台
根据资源类型,确切的步骤可能略有不同。例如,以下步骤可将标记与虚拟机分离:
gcloud
以下示例使用 gcloud CLI 从虚拟机分离标记:
gcloud resource-manager tags bindings delete \ --location LOCATION_NAME \ --tag-value=tagValues/TAGVALUE_ID \ --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
请替换以下内容:
如需将现有标记绑定更新或替换为其他标记绑定,请分离旧标记绑定并附加新标记绑定。
API
如需删除附加到资源(例如虚拟机)的标记绑定,请将
tagBindings.delete
方法与资源所在的区域级端点配合使用。DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}
其中:
查看附加到资源的标记
如需查看有关如何列出标记的详细说明,请参阅 Resource Manager 文档中的列出附加到资源的标记。
控制台
根据资源类型,确切的步骤可能略有不同。例如,以下步骤展示了如何查看虚拟机的标记:
gcloud
如需获取直接附加到资源的标记绑定列表,请使用
gcloud resource-manager tags bindings list
命令。如果添加--effective
标志,您还会返回此资源继承的标记列表。例如:gcloud resource-manager tags bindings list \ --location=LOCATION_NAME \ --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
请替换以下内容:
如果将
--effective
标志添加到tags bindings list
命令,则也将返回此资源继承的所有标记的列表。您应该会看到如下所示的响应:namespacedTagKey: 961309089256/environment namespacedTagValue: 961309089256/environment/production tagKey: tagKeys/417628178507 tagValue: tagValues/247197504380 inherited: true
如果资源上评估的所有标记都直接附加,则
inherited
字段为 false 且被省略。API
如需列出附加到区域级资源(例如 Compute Engine 实例)的标记绑定,请使用
tagBindings.list
方法并使用资源所在的区域端点。例如:GET https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings { "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID" }
请替换以下内容:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-21。
-