Ver reservas o futuras solicitudes de reserva


Este documento explica cómo ver sus reservas o futuras solicitudes de reserva. Para obtener más información sobre los diferentes tipos de reservas, consulte Tipo de aprovisionamiento .

Cuando vea sus reservas o futuras solicitudes de reserva, puede hacer lo siguiente:

  • Ver configuración de reserva . Esta revisión lo ayuda a verificar los detalles de sus reservas, asegurarse de que satisfagan sus necesidades y planificar la capacidad.

  • Determine el número de instancias consumibles . Esta verificación te ayuda a determinar cuántas instancias de Compute Engine pueden consumir tu capacidad reservada.

Limitaciones

Solo puedes ver una reserva compartida o una solicitud de reserva futura compartida en el proyecto donde la creaste.

Antes de comenzar

Roles requeridos

Para obtener los permisos que necesita para ver reservas o futuras solicitudes de reserva, solicite a su administrador que le otorgue el rol de IAM de Administrador de Compute ( roles/compute.admin ) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .

Esta función predefinida contiene los permisos necesarios para ver reservas o futuras solicitudes de reserva. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :

Permisos requeridos

Se requieren los siguientes permisos para ver reservas o futuras solicitudes de reserva:

  • Para ver una lista de reservas: compute.reservations.list en el proyecto
  • Para ver una lista de futuras solicitudes de reserva: compute.futureReservations.list en el proyecto
  • Para ver los detalles de una reserva: compute.reservations.get en el proyecto
  • Para ver los detalles de una futura solicitud de reserva: compute.futureReservations.get en el proyecto

Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .

Ver configuración de reserva

Las siguientes secciones explican cómo ver la configuración de sus reservas o futuras solicitudes de reserva.

Ver reservas

Para ver la configuración de una o más reservas, utilice uno de los siguientes métodos descritos en esta sección:

  • Para ver una descripción general de todas las reservas en su proyecto, vea una lista de sus reservas.

  • Para ver los detalles completos de una única reserva, consulte los detalles de la reserva.

Para ver los campos deleteAtTime y reservationSharingPolicy ( Vista previa ) en una reserva, vea los detalles de una reserva usando la CLI de Google Cloud o vea las reservas usando la API REST. Si no necesita estos campos, vea las reservas seleccionando cualquiera de las siguientes opciones:

Consola

  1. En la consola de Google Cloud, vaya a la página Reservas .

    Ir a Reservas

    En la pestaña Reservas bajo demanda (predeterminada), la tabla enumera cada reserva y cada columna de la tabla describe una propiedad.

  2. Opcional: en la tabla Reservas bajo demanda , realice una o ambas de las siguientes acciones:

    • Para mostrar el recuento asegurado de sus reservas, haga clic en Opciones de visualización de columnas... , seleccione la casilla de verificación Recuento asegurado y luego haga clic en Aceptar .

    • Para refinar su lista de reservas, en el campo Filtro , seleccione las propiedades por las que desea filtrar las reservas.

  3. Para ver los detalles de una reserva, en la columna Nombre , haga clic en el nombre de la reserva. Se abre una página que da los detalles de la reserva.

nube de gcloud

  • Para ver una lista de tus reservas, usa el comando gcloud compute reservations list :

    gcloud compute reservations list
    

    El resultado es similar al siguiente ejemplo:

    NAME: r-01
    IN_USE_COUNT: 0
    COUNT: 5
    ZONE: us-central1-a
    SHARE_TYPE: LOCAL
    
    NAME: r-02
    IN_USE_COUNT: 3
    COUNT: 10
    ZONE: us-central1-f
    SHARE_TYPE: LOCAL
    

    Opcionalmente, para refinar una lista de reservas usando una expresión de filtro , incluya la marca --filter :

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

    Reemplace FILTER_EXPRESSION con una expresión de filtro.

  • Para ver los detalles de una reserva, usa el comando gcloud compute reservations describe :

    gcloud compute reservations describe RESERVATION_NAME \
        --zone=ZONE
    

    Reemplace lo siguiente:

    • RESERVATION_NAME : el nombre de una reserva existente.

    • ZONE : la zona donde existe la reserva.

    El resultado es similar al siguiente ejemplo:

    creationTimestamp: '2024-10-11T03:25:23.192-07:00'
    id: '4488228526648280060'
    kind: compute#reservation
    name: r-01
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/r-01
    shareSettings:
      shareType: LOCAL
    specificReservation:
      assuredCount: '50'
      count: '50'
      inUseCount: '25'
      instanceProperties:
        machineType: n2-standard-2
    specificReservationRequired: false
    status: READY
    zone: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a
    

Ir

  • Para ver una lista de sus reservas, utilice el siguiente código de ejemplo:

    // Copyright 2024 Google LLC
    //
    // Licensed under the Apache License, Version 2.0 (the "License");
    // you may not use this file except in compliance with the License.
    // You may obtain a copy of the License at
    //
    //     https://www.apache.org/licenses/LICENSE-2.0
    //
    // Unless required by applicable law or agreed to in writing, software
    // distributed under the License is distributed on an "AS IS" BASIS,
    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    // See the License for the specific language governing permissions and
    // limitations under the License.
    
    package snippets
    
    import (
    	"context"
    	"fmt"
    	"io"
    
    	compute "cloud.google.com/go/compute/apiv1"
    	computepb "cloud.google.com/go/compute/apiv1/computepb"
    	"google.golang.org/api/iterator"
    )
    
    // Get list of reservations for given project in particular zone
    func listReservations(w io.Writer, projectID, zone string) error {
    	// projectID := "your_project_id"
    	// zone := "us-west3-a"
    
    	ctx := context.Background()
    	reservationsClient, err := compute.NewReservationsRESTClient(ctx)
    	if err != nil {
    		return err
    	}
    	defer reservationsClient.Close()
    
    	req := &computepb.ListReservationsRequest{
    		Project: projectID,
    		Zone:    zone,
    	}
    
    	it := reservationsClient.List(ctx, req)
    	fmt.Fprintf(w, "Instances found in zone %s:\n", zone)
    	for {
    		instance, err := it.Next()
    		if err == iterator.Done {
    			break
    		}
    		if err != nil {
    			return err
    		}
    		fmt.Fprintf(w, "- %s %d\n", instance.GetName(), instance.GetSpecificReservation().GetCount())
    	}
    
    	return nil
    }
    
    
  • Para ver los detalles de una reserva, utilice el siguiente código de ejemplo:

    // Copyright 2024 Google LLC
    //
    // Licensed under the Apache License, Version 2.0 (the "License");
    // you may not use this file except in compliance with the License.
    // You may obtain a copy of the License at
    //
    //     https://www.apache.org/licenses/LICENSE-2.0
    //
    // Unless required by applicable law or agreed to in writing, software
    // distributed under the License is distributed on an "AS IS" BASIS,
    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    // See the License for the specific language governing permissions and
    // limitations under the License.
    
    package snippets
    
    import (
    	"context"
    	"fmt"
    	"io"
    
    	compute "cloud.google.com/go/compute/apiv1"
    	computepb "cloud.google.com/go/compute/apiv1/computepb"
    )
    
    // Get certain reservation for given project and zone
    func getReservation(w io.Writer, projectID, zone, reservationName string) (*computepb.Reservation, error) {
    	// projectID := "your_project_id"
    	// zone := "us-west3-a"
    	// reservationName := "your_reservation_name"
    
    	ctx := context.Background()
    	reservationsClient, err := compute.NewReservationsRESTClient(ctx)
    	if err != nil {
    		return nil, err
    	}
    	defer reservationsClient.Close()
    
    	req := &computepb.GetReservationRequest{
    		Project:     projectID,
    		Reservation: reservationName,
    		Zone:        zone,
    	}
    
    	reservation, err := reservationsClient.Get(ctx, req)
    	if err != nil {
    		return nil, fmt.Errorf("unable to delete reservation: %w", err)
    	}
    
    	fmt.Fprintf(w, "Reservation: %s\n", reservation.GetName())
    
    	return reservation, nil
    }
    
    

Java

  • Para ver una lista de sus reservas, utilice el siguiente código de ejemplo:

    /*
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *   http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    package compute.reservation;
    
    import com.google.cloud.compute.v1.Reservation;
    import com.google.cloud.compute.v1.ReservationsClient;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    public class ListReservations {
    
      public static void main(String[] args) throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        // Project ID or project number of the Cloud project you want to use.
        String project = "YOUR_PROJECT_ID";
        // Zone in which reservations are located.
        String zone = "us-central1-a";
    
        listReservations(project, zone);
      }
    
      // List all reservations in the given project and zone.
      public static List<Reservation> listReservations(String project, String zone) throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        List<Reservation> listOfReservations = new ArrayList<>();
    
        try (ReservationsClient reservationsClient = ReservationsClient.create()) {
          for (Reservation reservation : reservationsClient.list(project, zone).iterateAll()) {
            listOfReservations.add(reservation);
            System.out.println("Reservation: " + reservation.getName());
          }
        }
        return listOfReservations;
      }
    }
  • Para ver los detalles de una reserva, utilice el siguiente código de ejemplo:

    /*
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    package compute.reservation;
    
    import com.google.cloud.compute.v1.Reservation;
    import com.google.cloud.compute.v1.ReservationsClient;
    import java.io.IOException;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.TimeoutException;
    
    public class GetReservation {
    
      public static void main(String[] args)
          throws IOException, ExecutionException, InterruptedException, TimeoutException {
        // TODO(developer): Replace these variables before running the sample.
        // Project ID or project number of the Cloud project you want to use.
        String projectId = "YOUR_PROJECT_ID";
        // Name of the zone in which you want to create the reservation.
        String zone = "us-central1-a";
        // Name of the reservation you want to create.
        String reservationName = "test-reservation-name";
    
        getReservation(projectId, reservationName, zone);
      }
    
      // Retrieve a reservation with the given name in the given zone.
      public static Reservation getReservation(
          String projectId, String reservationName, String zone)
          throws IOException {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        try (ReservationsClient reservationsClient = ReservationsClient.create()) {
    
          // Get the reservation.
          Reservation reservation = reservationsClient.get(projectId, zone, reservationName);
    
          System.out.println("Reservation: " + reservation.getName());
          return reservation;
        }
      }
    }

Nodo.js

  • Para ver una lista de sus reservas, utilice el siguiente código de ejemplo:

    /*
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     https://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    'use strict';
    
    async function main() {
      // Import the Compute library
      const computeLib = require('@google-cloud/compute');
    
      // Instantiate a reservationsClient
      const reservationsClient = new computeLib.ReservationsClient();
    
      /**
       * TODO(developer): Update these variables before running the sample.
       */
      // The ID of the project where your reservations are located.
      const projectId = await reservationsClient.getProjectId();
      // The zone where your reservations are located.
      const zone = 'us-central1-a';
    
      async function callGetReservations() {
        const reservations = (
          await reservationsClient.list({
            project: projectId,
            zone,
          })
        )[0];
    
        console.log(JSON.stringify(reservations));
      }
    
      await callGetReservations();
    }
    
    main().catch(err => {
      console.error(err);
      process.exitCode = 1;
    });
    
  • Para ver los detalles de una reserva, utilice el siguiente código de ejemplo:

    /*
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     https://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    'use strict';
    
    async function main(reservationName) {
      // Import the Compute library
      const computeLib = require('@google-cloud/compute');
    
      // Instantiate a reservationsClient
      const reservationsClient = new computeLib.ReservationsClient();
    
      /**
       * TODO(developer): Update/uncomment these variables before running the sample.
       */
      // The ID of the project where your reservation is located.
      const projectId = await reservationsClient.getProjectId();
      // The zone where your reservation is located.
      const zone = 'us-central1-a';
      // The name of the reservation to return.
      // reservationName = 'reservation-01';
    
      async function callGetReservation() {
        const requestedReservation = (
          await reservationsClient.get({
            project: projectId,
            zone,
            reservation: reservationName,
          })
        )[0];
    
        console.log(JSON.stringify(requestedReservation));
      }
    
      await callGetReservation();
    }
    
    main(...process.argv.slice(2)).catch(err => {
      console.error(err);
      process.exitCode = 1;
    });
    

Pitón

  • Para ver una lista de sus reservas, utilice el siguiente código de ejemplo:

    # Copyright 2024 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #    https://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    
    # This file is automatically generated. Please do not modify it directly.
    # Find the relevant recipe file in the samples/recipes or samples/ingredients
    # directory and apply your changes there.
    
    
    from google.cloud import compute_v1
    from google.cloud.compute_v1.services.reservations.pagers import ListPager
    
    
    def list_compute_reservation(project_id: str, zone: str = "us-central1-a") -> ListPager:
        """
        Lists all compute reservations in a specified Google Cloud project and zone.
        Args:
            project_id (str): The ID of the Google Cloud project.
            zone (str): The zone of the reservations.
        Returns:
            ListPager: A pager object containing the list of reservations.
        """
    
        client = compute_v1.ReservationsClient()
    
        reservations_list = client.list(
            project=project_id,
            zone=zone,
        )
    
        for reservation in reservations_list:
            print("Name: ", reservation.name)
            print(
                "Machine type: ",
                reservation.specific_reservation.instance_properties.machine_type,
            )
        # Example response:
        # Name:  my-reservation_1
        # Machine type:  n1-standard-1
        # Name:  my-reservation_2
        # Machine type:  n1-standard-1
    
        return reservations_list
    
    
    
  • Para ver los detalles de una reserva, utilice el siguiente código de ejemplo:

    # Copyright 2024 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #    https://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    
    # This file is automatically generated. Please do not modify it directly.
    # Find the relevant recipe file in the samples/recipes or samples/ingredients
    # directory and apply your changes there.
    
    
    from google.cloud import compute_v1
    from google.cloud.compute_v1.types import compute
    
    
    def get_compute_reservation(
        project_id: str,
        zone: str = "us-central1-a",
        reservation_name="your-reservation-name",
    ) -> compute.Reservation:
        """
        Retrieves a compute reservation from GCP.
        Args:
            project_id (str): The ID of the Google Cloud project.
            zone (str): The zone of the reservation.
            reservation_name (str): The name of the reservation to retrieve.
        Returns:
            compute.Reservation: The reservation object retrieved from Google Cloud.
        """
    
        client = compute_v1.ReservationsClient()
    
        reservation = client.get(
            project=project_id,
            zone=zone,
            reservation=reservation_name,
        )
    
        print("Name: ", reservation.name)
        print("STATUS: ", reservation.status)
        print(reservation.specific_reservation)
        # Example response:
        # Name:  your-reservation-name
        # STATUS:  READY
        # count: 3
        # instance_properties {
        #   machine_type: "n1-standard-1"
        #   local_ssds {
        #     disk_size_gb: 375
        #     interface: "NVME"
        #   }
        # ...
    
        return reservation
    
    
    

DESCANSAR

  • Para ver una lista de sus reservas, realice una solicitud GET al método reservations.list :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations
    

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde creaste tus reservas.

    • ZONE : la zona donde existen sus reservas.

    El resultado es similar al siguiente ejemplo:

    {
      "kind": "compute#reservation",
      "id": "4100668622331754141",
      "creationTimestamp": "2019-09-27T08:21:14.707-07:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-05",
      "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
      "name": "reservation-05",
      "specificReservation": {
        "instanceProperties": {
          "machineType": "n1-standard-2"
        },
        "count": "100",
        "inUseCount": "0",
        "assuredCount": "100"
      },
      "specificReservationRequired": false,
      "status": "READY",
      "shareSettings": {
        "shareType": "LOCAL"
      }
    },
    {
      "kind": "compute#reservation",
      "id": "2533514314332214789",
      "creationTimestamp": "2019-09-27T08:21:14.707-07:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/reservation-04",
      "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a",
      "name": "reservation-04",
      "specificReservation": {
        "instanceProperties": {
          "machineType": "n1-standard-2",
          "guestAccelerators": [
            {
              "acceleratorType": "nvidia-tesla-t4",
              "acceleratorCount": 1
            }
          ],
          "localSsds": [
            {
              "diskSizeGb": "375",
              "interface": "SCSI"
            }
          ]
        },
        "count": "50",
        "inUseCount": "25",
        "assuredCount": "50"
      },
      "specificReservationRequired": false,
      "status": "READY",
      "shareSettings": {
        "shareType": "LOCAL"
      }
    }
    

    Opcionalmente, para refinar una lista de reservas usando una expresión de filtro , incluya el parámetro de consulta filter :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations?filter=FILTER_EXPRESSION
    

    Reemplace FILTER_EXPRESSION con una expresión de filtro que utilice valores codificados en URL .

  • Para ver los detalles de una reserva, realice una solicitud GET al método reservations.get .

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
    

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde creaste la reserva.

    • ZONE : la zona donde existe la reserva.

    • RESERVATION_NAME : el nombre de una reserva existente.

    El resultado es similar al siguiente ejemplo:

    {
      "kind": "compute#reservation",
      "id": "4488228526648280060",
      "creationTimestamp": "2024-10-11T03:25:23.192-07:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/davide-experimental/zones/us-central1-a/reservations/r-01",
      "zone": "https://www.googleapis.com/compute/v1/projects/davide-experimental/zones/us-central1-a",
      "name": "r-01",
      "specificReservation": {
        "instanceProperties": {
          "machineType": "n2-standard-2"
        },
        "count": "50",
        "inUseCount": "25",
        "assuredCount": "50"
      },
      "specificReservationRequired": false,
      "status": "READY",
      "shareSettings": {
        "shareType": "LOCAL"
      }
    }
    

Ver futuras solicitudes de reserva

Para ver la configuración de una o más solicitudes de reserva futuras, utilice uno de los siguientes métodos descritos en esta sección:

  • Para ver una descripción general de todas las solicitudes de reserva futuras en su proyecto, vea una lista de sus solicitudes.

  • Para ver los detalles completos de una única solicitud de reserva futura, consulte los detalles de la solicitud.

Para ver futuras solicitudes de reserva, seleccione una de las siguientes opciones:

Consola

  1. En la consola de Google Cloud, vaya a la página Reservas .

    Ir a Reservas

  2. Haga clic en la pestaña Reservas futuras .

    La tabla enumera cada solicitud de reserva futura y cada columna de la tabla describe una propiedad.

  3. Opcional: para refinar su lista de solicitudes, en el campo filtro , seleccione las propiedades por las que desea filtrar las solicitudes.

  4. Para ver los detalles de una solicitud, en la columna Nombre , haga clic en el nombre de la solicitud. Se abre una página que proporciona los detalles de la futura solicitud de reserva.

nube de gcloud

  • Para ver una lista de tus futuras solicitudes de reserva, usa el comando gcloud beta compute future-reservations list :

    gcloud beta compute future-reservations list
    

    El resultado es similar al siguiente ejemplo:

    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
    

    Opcionalmente, para refinar una lista de futuras solicitudes de reserva usando una expresión de filtro , incluya la marca --filter :

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

    Reemplace FILTER_EXPRESSION con una expresión de filtro.

  • Para ver los detalles de una solicitud de reserva futura, usa el comando gcloud beta compute future-reservations describe :

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

    Reemplace lo siguiente:

    • FUTURE_RESERVATION_NAME : el nombre de una solicitud de reserva futura existente.

    • ZONE : la zona donde existe la futura solicitud de reserva.

    El resultado es similar al siguiente ejemplo:

    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
    

DESCANSAR

  • Para ver una lista de sus futuras solicitudes de reserva, realice una solicitud GET al método beta futureReservations.list :

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

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde creaste tus futuras solicitudes de reserva.

    • ZONE : la zona donde existen sus futuras solicitudes de reserva.

    El resultado es similar al siguiente ejemplo:

    {
      "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"
    }
    

    Opcionalmente, para refinar una lista de futuras solicitudes de reserva usando una expresión de filtro , incluya el parámetro de consulta filter :

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

    Reemplace FILTER_EXPRESSION con una expresión de filtro que utilice valores codificados en URL .

  • Para ver los detalles de una futura solicitud de reserva, realice una solicitud GET al método beta futureReservations.get :

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

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde creó la futura solicitud de reserva.

    • ZONE : la zona donde existe la futura solicitud de reserva.

    • FUTURE_RESERVATION_NAME : el nombre de una solicitud de reserva futura existente.

    El resultado es similar al siguiente:

    {
      "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"
    }
    

Determinar el número de instancias consumibles.

Para determinar la cantidad de instancias informáticas que pueden consumir su capacidad reservada, realice una de las siguientes acciones:

Instancias consumibles en una reserva

Cuando ve los detalles de una reserva , puede ver cuántas instancias informáticas consumen la reserva y cuántas instancias pueden consumirla marcando los siguientes campos:

  • Recuento asegurado ( assuredCount ) : el número de instancias que están reservadas físicamente dentro de la zona de la reserva. Este número incluye las instancias reservadas para su proyecto y para cualquier proyecto con el que se comparta una reserva compartida.

  • Recuento total ( count ) : el número de instancias reservadas especificadas en la reserva. Este número debe coincidir con el recuento asegurado.

  • Máquinas en uso ( inUseCount ) : la cantidad de instancias en ejecución en su proyecto, o un proyecto con el que se comparte una reserva compartida, que están consumiendo la reserva.

Por ejemplo, si el recuento asegurado ( assuredCount ) y el recuento total ( count ) son 50 y el número de instancias que consumen la reserva ( inUseCount ) es 25, entonces 25 instancias más pueden consumir la reserva antes de que se consuma por completo.

Instancias consumibles en una futura solicitud de reserva

Puedes determinar la cantidad de instancias informáticas para las cuales Compute Engine crea una reserva en una hora de inicio de solicitud de reserva futura. Para un borrador, aprobación pendiente o solicitud aprobada, puede determinar este número de la siguiente manera:

  1. Vea cuántas instancias en ejecución y reservas no utilizadas en su proyecto y, en cualquier proyecto con el que se comparte la solicitud, haga coincidir las propiedades de la solicitud.

  2. Reste el número de instancias en ejecución coincidentes y reservas no utilizadas del recuento total de la solicitud.

Puede determinar la cantidad de instancias consumibles para solicitudes únicas o múltiples a la vez. Para solicitudes múltiples, utilice la consola de Google Cloud o la API REST. Para solicitudes individuales, seleccione cualquiera de las siguientes opciones:

Consola

  1. En la consola de Google Cloud, vaya a la página Reservas .

    Ir a Reservas

  2. Haga clic en la pestaña Reservas futuras .

    La tabla enumera cada solicitud de reserva futura y cada columna de la tabla describe una propiedad.

  3. Para determinar la cantidad de instancias que Compute Engine planea reservar para una solicitud en su momento de inicio, reste la columna Recuento coincidente de la columna Recuento total .

    La columna Recuento de coincidencias muestra una de las siguientes advertencias:

    • El recuento de coincidencias es cero : no hay instancias en ejecución coincidentes ni reservas no utilizadas en su proyecto, ni en ningún proyecto con el que se comparta su solicitud.

    • El recuento coincidente es igual al recuento total : Compute Engine no reservará ninguna instancia para su solicitud en su momento de inicio.

    Si modifica una solicitud o crea nuevas instancias o reservas que coincidan con la solicitud, Compute Engine actualiza la columna Recuento de coincidencias en un plazo de 30 minutos.

  4. Opcional: Para comprobar cuándo se actualizó por última vez la columna Recuento de coincidencias en una solicitud, haga lo siguiente:

    1. En la columna Nombre , haga clic en el nombre de la solicitud. Se abre una página que proporciona los detalles de la futura solicitud de reserva.

    2. En la sección Detalles del recurso , marque el campo Última hora de evaluación de uso coincidente .

nube de gcloud

  1. Para ver los detalles de una solicitud de reserva futura, usa el comando gcloud beta compute future-reservations describe :

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

    Reemplace lo siguiente:

    • FUTURE_RESERVATION_NAME : el nombre de una solicitud de reserva futura existente.

    • ZONE : la zona donde existe la futura solicitud de reserva.

    En el resultado, busque los campos count y totalCount :

    ...
    specificSkuProperties:
      ...
      totalCount: '100'
    status:
      existingMatchingUsageInfo:
        count: '50'
        timestamp: '2025-03-30T01:00:00Z'
      ...
      procurementStatus: DRAFTING
    ...
    
  2. Reste el valor de count de totalCount . Por ejemplo, si count es 50 y totalCount es 100, Compute Engine crea automáticamente una reserva para 50 instancias en el momento de inicio de la solicitud.

    Si modifica la solicitud o crea nuevas instancias o reservas que coincidan con la solicitud, Compute Engine actualiza el campo existingMatchingUsageInfo en un plazo de 30 minutos. Para verificar cuándo se actualizó este campo por última vez, verifique el valor de existingMatchingUsageInfo.timestamp .

DESCANSAR

  1. Para ver una lista de sus futuras solicitudes de reserva, realice una solicitud GET al método beta futureReservations.list . En la URL de solicitud, incluya el parámetro de consulta filter y especifique que se muestren solo los campos name , specificSkuProperties y status :

    GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?fields=items.name,items.specificSkuProperties,items.status
    

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto donde creaste tus futuras solicitudes de reserva.

    • ZONE : la zona donde existe la futura solicitud de reserva.

    En el resultado, busque los campos count y totalCount para cada borrador, aprobación pendiente o solicitud aprobada:

    {
      "items": [
        {
          "specificSkuProperties": {
            ...
            totalCount: "100"
          },
          "name": "fr-01",
          "status": {
            "procurementStatus": "APPROVED",
            ...
            existingMatchingUsageInfo: {
              count: "50",
              "timestamp": "2025-01-22T07:54:26.295Z"
            }
          }
        },
        {
          "specificSkuProperties": {
            ...
            totalCount: "20"
          },
          "name": "fr-02",
          "status": {
            "procurementStatus": "DRAFTING",
            ...
            existingMatchingUsageInfo: {
              "count": "2",
              "timestamp": "2025-01-22T07:54:26.295Z"
            }
          }
        }
      ]
    }
    
  2. Para cada solicitud, reste el valor de count de totalCount . Por ejemplo, si count es 50 y totalCount es 100, Compute Engine crea automáticamente una reserva para 50 instancias en el momento de inicio de la solicitud.

    Si modifica una solicitud o crea nuevas instancias o reservas que coincidan con la solicitud, Compute Engine actualiza el campo existingMatchingUsageInfo en un plazo de 30 minutos. Para verificar cuándo se actualizó este campo por última vez, verifique el valor de existingMatchingUsageInfo.timestamp .

¿Qué sigue?