查看未来预留请求


本文档介绍了如何查看未来预留请求。

查看未来预留请求有助于大致了解项目中的所有未来预留请求,并查看未来预留请求的配置详情。如果您想查看共享未来预留请求,只能使用所有者项目查看。

如需查看为未来预留预配的自动创建的预留,请参阅查看预留

准备工作

  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

所需的角色

如需获得查看未来预留请求所需的权限,请让您的管理员为您授予项目的 Compute Future Reservation Viewer (roles/compute.futureReservationViewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含查看未来预留请求所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

必须拥有以下权限才能查看未来预留请求:

  • 项目的 compute.futureReservations.list 权限(查看未来预留的列表)
  • 项目的 compute.futureReservations.get 权限(查看未来预留的详细信息)

您也可以使用自定义角色或其他预定义角色来获取这些权限。

查看未来预留请求

根据您要在未来预留请求中查看的详细信息,使用以下方法之一:

查看未来预留请求列表

查看未来预留请求列表时,您可以使用过滤表达式来缩小结果范围。如需使用更高级的过滤表达式,请使用 gcloud CLI 或 REST。

如需查看项目中的未来预留请求列表,请选择以下选项之一:

控制台

  1. 在 Google Cloud 控制台中,转到预留页面。

    转到“预留”

  2. 点击未来预留标签页。

    在该表中,每行描述一个未来预留请求,每列描述一个属性。例如,总计数列描述了每个未来预留请求的预留容量。

  3. 可选:如需过滤表中显示的未来预留请求,请执行以下一项或两项操作:

    • 过滤条件字段中,输入过滤条件表达式

      例如,如需仅查看在可用区 us-central1-a 中创建或预留了 10 多个资源的未来预留请求,请指定以下表达式:

      Zone:us-central1-a OR Total Count>10
      
    • 点击 列显示选项,然后选择要用于过滤表的值。

gcloud

如需查看未来预留请求列表,请使用 gcloud beta compute future-reservations list 命令

gcloud beta compute future-reservations list

输出类似于以下内容:

NAME: fr-04
TOTAL_COUNT: 100
START_TIME: 2025-07-20T07:00:00Z
END_TIME: 2025-08-05T07:00:00Z
PROCUREMENT_STATUS: FULFILLED
ZONE: us-east1-a

NAME: fr-05
TOTAL_COUNT: 10
START_TIME: 2025-07-20T07:00:00Z
END_TIME: 2025-12-01T00:00:00Z
PROCUREMENT_STATUS: PENDING_APPROVAL
ZONE: us-west1-c

(可选)如需根据过滤表达式过滤未来预留请求,请添加 --filter 标志。

gcloud beta compute future-reservations list \
    --filter="FILTER_EXPRESSION"

FILTER_EXPRESSION 替换为过滤表达式。

例如,如需仅查看在可用区 us-central1-a 中创建的未来预留、指定 n2-standard-4 机器类型且总计数大于 10,请指定以下过滤条件表达式:

zone=us-central1-a AND specificSkuProperties.instanceProperties.machineType=n2-standard-4 AND specificSkuProperties.totalCount>10

REST

如需查看未来预留请求列表,请向 beta.futureResevations.list 方法发出 GET 请求。

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations

请替换以下内容:

  • PROJECT_ID:一个或多个未来预留请求所在项目的 ID。

  • ZONE:一个或多个未来预留请求所在的可用区。

输出类似于以下内容:

{
  "id": "projects/my-project/zones/us-east1-a/futureReservations",
  "items": [
    {
      "id": "743865190848184978",
      "creationTimestamp": "2025-03-23T18:16:45.274-07:00",
      "selfLink": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a/futureReservations/fr-base",
      "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a/futureReservations/743865190848184978",
      "zone": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a",
      "name": "fr-base",
      "specificSkuProperties": {
        "instanceProperties": {
          "machineType": "n1-standard-1"
        },
        "totalCount": "100"
      },
      "planningStatus": "SUBMITTED",
      "timeWindow": {
        "endTime": "2025-05-02T01:00:00Z",
        "startTime": "2025-04-30T17:30:00Z"
      },
      "status": {
        "procurementStatus": "FULFILLED",
        "lockTime": "2025-03-30T07:00:00Z",
        "existingMatchingUsageInfo": {
          "count": "3",
          "timestamp": "2025-03-30T01:00:00Z"
        }
      },
      "kind": "compute#futureReservation"
    },
    ...
  ],
  "selfLink": "https://www.googleapis.com/compute/beta/projects/my-project/zones/us-east1-a/futureReservations",
  "etag": "AnzKY34l-cvvV-JnniESJ0dtQvQ=/hvc4jaHpxFAZmOt1FVtKNgzZu-M=",
  "kind": "compute#futureReservationsListResponse"
}

(可选)如需根据过滤表达式过滤未来预留请求,请添加 filter 查询参数。

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/aggregated/futureReservations?filter=FILTER_EXPRESSION

替换以下内容:

  • PROJECT_ID:一个或多个未来预留请求所在项目的 ID。

  • FILTER_EXPRESSION:使用网址编码的过滤条件表达式。

    例如,如需仅查看在可用区 us-central1-a 中创建、预留了 n2-standard-4 机器类型且总计数大于 10 的预留,请指定以下过滤条件表达式:

    zone=us-central1-a%20AND%20specificSkuProperties.instanceProperties.machineType=n2-standard-4%20AND%20specificSkuProperties.totalCount%3E10
    

    请注意,网址编码的过滤条件表达式表示以下解码后的过滤条件表达式:

    zone=us-central1-a AND specificSkuProperties.instanceProperties.machineType=n2-standard-4 AND specificSkuProperties.totalCount>10
    

查看未来预留请求的详细信息

如需查看未来预留请求的详细信息,请选择以下选项之一:

控制台

  1. 在 Google Cloud 控制台中,转到预留页面。

    转到“预留”

  2. 点击未来预留标签页。

  3. 名称列中,点击要查看其详细信息的未来预留请求的名称。

    系统会打开未来预留页面,其中包含未来预留请求的详细信息。

gcloud

如需查看未来预留请求的详细信息,请使用 gcloud beta compute future-reservations describe 命令

gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \
    --zone=ZONE

请替换以下内容:

  • FUTURE_RESERVATION_NAME:现有未来预留请求的名称。

  • ZONE:未来预留请求所在的可用区。

输出类似于以下内容:

autoCreatedReservationsDeleteTime: '2025-05-02T01:00:00Z'
creationTimestamp: '2025-03-23T10:08:31.613-07:00'
id: '5212276518668495076'
kind: compute#futureReservation
name: fr-01
planningStatus: SUBMITTED
selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/fr-01
selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/5212276518668495076
shareSettings:
  shareType: LOCAL
specificSkuProperties:
  instanceProperties:
    machineType: n1-standard-64
  totalCount: '800'
status:
  existingMatchingUsageInfo:
    count: '3'
    timestamp: '2025-03-30T01:00:00Z'
  lockTime: '2025-03-30T17:09:59.297799Z'
  procurementStatus: APPROVED
timeWindow:
  endTime: '2025-05-02T01:00:00Z'
  startTime: '2025-04-30T17:30:00Z'
zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a

REST

如需查看未来预留请求的详细信息,请向 beta.futureReservations.get 方法发出 GET 请求。

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME

请替换以下内容:

  • PROJECT_ID:未来预留请求所在项目的 ID。

  • ZONE:未来预留请求所在的可用区。

  • FUTURE_RESERVATION_NAME:现有未来预留请求的名称。

输出类似于以下内容:

{
  "autoCreatedReservationsDeleteTime": "2025-05-02T01:00:00Z",
  "creationTimestamp": "2025-03-23T10:08:31.613-07:00",
  "id": "5212276518668495076",
  "kind": "compute#futureReservation",
  "name": "fr-01",
  "planningStatus": "SUBMITTED",
  "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/fr-01",
  "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/5212276518668495076",
  "shareSettings": {
    "shareType": "LOCAL"
  },
  "specificSkuProperties": {
    "instanceProperties": {
      "machineType": "n1-standard-64"
    },
    "totalCount": "800"
  },
  "status": {
    "lockTime": "2025-03-30T17:09:59.297799Z",
    "procurementStatus": "APPROVED",
    "existingMatchingUsageInfo": {
      "count": "3",
      "timestamp": "2025-03-30T01:00:00Z"
    }
  },
  "timeWindow": {
    "endTime": "2025-05-02T01:00:00Z",
    "startTime": "2025-04-30T17:30:00Z"
  },
  "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a"
}

确定已预配的虚拟机数量

创建未来预留请求后,您可以查看项目(或与其共享未来预留请求的项目)中运行的虚拟机和未使用的预留数量是否与请求中指定的虚拟机属性匹配。通过将此数字从您在请求中指定的总数中减去,您可以确定 Compute Engine 在您的请求获得批准并达到其开始时间后将预配多少个虚拟机。

如需同时确定多个未来预留请求的预配虚拟机数量,请使用 Google Cloud 控制台。否则,如需确定单个请求预配的虚拟机数量,请选择以下任一选项:

控制台

  1. 在 Google Cloud 控制台中,转到预留页面。

    转到“预留”

  2. 点击未来预留标签页。

  3. 对于每项未来预留请求,您可以确定以下内容:

    • 总计数列中,显示请求的总计数。

    • 匹配的数量列中,显示虚拟机属性与请求匹配的正在运行的虚拟机和预留的数量。

    通过从总计数列的值中减去匹配的数量列的值,您可以确定 Compute Engine 将在未来预留请求的开始时间预配的虚拟机数量。如果您在匹配的数量列中看到警告,则可能是由于以下某种原因:

    • 匹配的数量的值为零。在这种情况下,您的项目中没有匹配的正在运行的虚拟机或预留。

    • 匹配的数量的值等于总计数。在这种情况下,Compute Engine 不会为未来的预留请求预配任何预留虚拟机。

    如果您修改未来预留请求,或者创建具有与请求匹配的虚拟机属性的新虚拟机或预留,Compute Engine 会在 30 分钟内更新匹配数量列中的值。如需验证匹配的数量列上次更新的时间,请查看请求的详细信息,然后检查上次匹配用法评估时间行中的值。

  4. 可选:如需更改未来预留请求中的预留虚拟机数量,请修改未来预留请求

gcloud

  1. 查看未来预留请求的详细信息

  2. 在输出中,从 totalCount 字段中减去 existingMatchingUsageInfo 字段的值。如果 existingMatchingUsageInfo.count 的值等于 totalCount,则 Compute Engine 不会为未来的预留请求预配任何预留虚拟机。

    如果您修改未来预留请求,或者创建具有与请求匹配的虚拟机属性的新虚拟机或预留,Compute Engine 会在 30 分钟内更新 existingMatchingUsageInfo 字段。如需验证该字段的上次更新时间,请检查 existingMatchingUsageInfo.timestamp 字段的值。

  3. 可选:如需更改未来预留请求中的预留虚拟机数量,请修改未来预留请求

REST

  1. 查看未来预留请求的详细信息

  2. 在输出中,从 totalCount 字段中减去 existingMatchingUsageInfo 字段的值。如果 existingMatchingUsageInfo.count 的值等于 totalCount,则 Compute Engine 不会为未来的预留请求预配任何预留虚拟机。

    如果您修改未来预留请求,或者创建具有与请求匹配的虚拟机属性的新虚拟机或预留,Compute Engine 会在 30 分钟内更新 existingMatchingUsageInfo 字段。如需验证该字段的上次更新时间,请检查 existingMatchingUsageInfo.timestamp 字段的值。

  3. 可选:如需更改未来预留请求中的预留虚拟机数量,请修改未来预留请求

后续步骤