查看虚拟机实例的引用方

本页面介绍如何使用 List Referrers API 查看资源之间的关系;具体而言,您可以查看虚拟机实例与其他 Compute Engine 资源之间的关系。

使用此 API 时,Compute Engine 会返回描述以下各项的引用列表:

  • 源资源 - 指向目标资源的资源。
  • 目标资源 - 相关资源。
  • 引用类型 - 两个资源之间的关系。

例如,您可以使用此 API 方便地查看虚拟机实例所属的托管实例组列表。

准备工作

限制

  • 您只能列出虚拟机实例及实例组(包括托管和非托管)之间的关系。
  • 无法使用 gcloud 工具或 Google Cloud Platform Console 列出引用方。

列出单个引用方

引用方指的是引用其他资源的资源。对于虚拟机实例而言,一种常见的引用方就是实例组。

例如,假设您有一个名为 example-ig-a1 的实例,位于 us-central1-a 地区。此虚拟机实例属于一个名为 example-ig 的实例组,该实例组也在同一个地区中,如下图所示:

要查看这一关系,请通过以下 HTTP 请求在 example-ig-a1 中调用 listReferrers 方法

GET https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1/referrers

服务器返回包含以下内容的标准列表响应:

"items": [
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  }
]

在这种情况下,target 为 example-ig-a1,它是 referrer(即 example-ig 实例组)的一个 MEMBER_OF

列出多个引用方

如果一个资源有多个引用方,则响应将返回该目标资源的所有引用方的列表。如果实例属于两个实例组,则响应将包含这两个实例组。

例如,以下响应表明名为 example-instance-a2 的实例属于两个实例组,即 example-ig 和 example-ig-2:

"items": [
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  },
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2
  }
]

列出跨范围的引用方

listReferrers 方法还会返回其他范围(例如其他区域或地区)内存在的引用方的相关信息。例如,假设您有一个虚拟机实例,该实例属于某个区域托管实例组:

您通过以下 HTTP 请求对此实例调用 listReferrers 方法:

GET https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3/referrers

服务器返回包含以下内容的标准列表响应:

"items": [
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rig
  }
]

该响应显示了引用方列表中的区域托管实例组。

列出集合中所有资源的引用方

通过使用通配符 (-),您可以请求获取特定地区内所有虚拟机实例的所有引用方的列表。可通过类似于以下内容的 HTTP 请求来发出此请求:

GET https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/-/referrers

服务器返回一个响应,其中包含该地区中的虚拟机实例列表以及对实例的引用。例如:

"items": [
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  },
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
  },
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2
  },
  {
    "target": https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3,
    "referenceType": MEMBER_OF,
    "referrer": https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rig
  }
]

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档