如果您要查看虚拟机实例与其他 Compute Engine 资源之间的关系,请使用 listReferrers
REST API 方法。
使用 REST 时,Compute Engine 会返回描述以下各项的引用列表:
- 源资源:指向目标资源的资源
- 目标资源:相关资源
- 引用类型:两个资源之间的关系
例如,您可以使用 REST 方便地查看虚拟机实例所属的实例组列表。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
限制
- 您只能列出虚拟机实例与实例组(包括代管式实例组和非代管式实例组)之间的关系。
- 您只能使用 REST 列出引用方。
列出单个引用方
引用方指的是引用其他资源的资源。对于虚拟机实例而言,一种常见的引用方就是实例组。
例如,假设您有一个名为 example-ig-a1
的实例,位于 us-central1-a
区域。此虚拟机实例属于一个名为 example-ig
的实例组,该实例组也在同一个区域中,如下图所示:
如需查看这一关系,请通过以下 HTTP 请求在 example-ig-a1
中调用 listReferrers
方法:
GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1/referrers
服务器返回包含以下内容的标准列表响应:
"items": [
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
}
]
在这种情况下,target
为 example-ig-a1
,它是 MEMBER_OF
(即 referrer
example-ig instance
组)。
列出多个引用方
如果一个资源有多个引用方,则响应将返回该目标资源的所有引用方的列表。如果实例属于两个实例组,则响应将包含这两个实例组。
例如,以下响应表明名为 example-instance-a2
的实例属于两个实例组,即 example-ig
和 example-ig-2
:
"items": [
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
},
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance-a2,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2
}
]
列出跨范围的引用方
listReferrers
方法还会返回其他范围(例如其他地区或区域)内存在的引用方的相关信息。例如,假设您有一个虚拟机实例,该实例属于某个可用区托管式实例组(地区级 MIG):
您通过以下 HTTP 请求对此实例调用 listReferrers
方法:
GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3/referrers
服务器返回包含以下内容的标准列表响应:
"items": [
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig
}
]
该响应显示了引用方列表中的地区实例组。
列出集合中所有资源的引用方
通过使用通配符 (-
),您可以请求获取特定地区内所有虚拟机实例的所有引用方的列表。可通过类似于以下内容的 HTTP 请求来发出此请求:
GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/-/referrers
服务器返回一个响应,其中包含该地区中的虚拟机实例列表以及对实例的引用。例如:
"items": [
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a1,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
},
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig
},
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-ig-a2,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-ig-2
},
{
"target": https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/new-instance-a3,
"referenceType": MEMBER_OF,
"referrer": https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/instanceGroups/example-rmig
}
]