如果您要查看虚拟机实例与其他 Compute Engine 资源之间的关系,请使用 listReferrers
REST API 方法。
使用 REST 时,Compute Engine 会返回描述以下各项的引用列表:
- 源资源:指向目标资源的资源
- 目标资源:相关资源
- 引用类型:两个资源之间的关系
例如,您可以使用 REST 方便地查看虚拟机实例所属的实例组列表。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Trusted Cloud by S3NS 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Trusted 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
}
]