Ver reservas ou pedidos de reserva futuros


Este documento explica como visualizar as suas reservas ou futuros pedidos de reserva. Para saber mais sobre os diferentes tipos de reservas, consulte Tipo de provisionamento .

Ao visualizar suas reservas ou solicitações de reservas futuras, você pode fazer o seguinte:

  • Ver configurações de reserva . Esta revisão ajuda você a verificar os detalhes de suas reservas, garantir que elas atendam às suas necessidades e planejar a capacidade.

  • Determine o número de instâncias consumíveis . Essa verificação ajuda a determinar quantas instâncias do Compute Engine podem consumir sua capacidade reservada.

Limitações

Você só pode visualizar uma reserva compartilhada ou uma solicitação de reserva futura compartilhada no projeto onde a criou.

Antes de começar

Funções obrigatórias

Para obter as permissões necessárias para visualizar reservas ou solicitações de reserva futuras, peça ao administrador para conceder a você a função do IAM Compute Admin ( roles/compute.admin ) no projeto. Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .

Esta função predefinida contém as permissões necessárias para visualizar reservas ou futuras solicitações de reserva. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias :

Permissões necessárias

As seguintes permissões são necessárias para visualizar reservas ou solicitações de reserva futuras:

  • Para visualizar uma lista de reservas: compute.reservations.list no projeto
  • Para visualizar uma lista de solicitações de reserva futuras: compute.futureReservations.list no projeto
  • Para visualizar os detalhes de uma reserva: compute.reservations.get no projeto
  • Para visualizar os detalhes de uma solicitação de reserva futura: compute.futureReservations.get no projeto

Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .

Ver configurações de reserva

As seções a seguir explicam como visualizar as configurações de suas reservas ou futuras solicitações de reserva.

Ver reservas

Para visualizar as configurações de uma ou mais reservas, utilize um dos seguintes métodos descritos nesta seção:

  • Para visualizar uma visão geral de todas as reservas em seu projeto, visualize uma lista de suas reservas.

  • Para visualizar os detalhes completos de uma única reserva, visualize os detalhes da reserva.

Para visualizar os campos deleteAtTime e reservationSharingPolicy ( Preview ) em uma reserva, visualize os detalhes de uma reserva usando a CLI do Google Cloud ou visualize as reservas usando a API REST. Se você não precisar desses campos, visualize as reservas selecionando qualquer uma das seguintes opções:

Console

  1. No console do Google Cloud, acesse a página Reservas .

    Ir para Reservas

    Na guia Reservas sob demanda (padrão), a tabela lista cada reserva e cada coluna da tabela descreve uma propriedade.

  2. Opcional: Na tabela Reservas sob demanda , siga um ou ambos os procedimentos a seguir:

    • Para exibir a contagem garantida de suas reservas, clique em Column display options... , marque a caixa de seleção Contagem garantida e clique em OK .

    • Para refinar sua lista de reservas, no campo Filtro , selecione as propriedades pelas quais você deseja filtrar as reservas.

  3. Para visualizar os detalhes de uma reserva, na coluna Nome , clique no nome da reserva. Uma página que fornece os detalhes da reserva é aberta.

gcloud

  • Para visualizar uma lista de suas reservas, use o comando gcloud compute reservations list :

    gcloud compute reservations list
    

    A saída é semelhante ao exemplo a seguir:

    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 uma lista de reservas usando uma expressão de filtro , inclua a sinalização --filter :

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

    Substitua FILTER_EXPRESSION por uma expressão de filtro.

  • Para visualizar os detalhes de uma reserva, use o comando gcloud compute reservations describe :

    gcloud compute reservations describe RESERVATION_NAME \
        --zone=ZONE
    

    Substitua o seguinte:

    • RESERVATION_NAME : o nome de uma reserva existente.

    • ZONE : a zona onde existe a reserva.

    A saída é semelhante ao exemplo a seguir:

    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 visualizar uma lista de suas reservas, use o seguinte exemplo de código:

    // 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 visualizar os detalhes de uma reserva, use o seguinte exemplo de código:

    // 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 visualizar uma lista de suas reservas, use o seguinte exemplo de código:

    /*
     * 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 visualizar os detalhes de uma reserva, use o seguinte exemplo de código:

    /*
     * 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;
        }
      }
    }

Node.js

  • Para visualizar uma lista de suas reservas, use o seguinte exemplo de código:

    /*
     * 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 visualizar os detalhes de uma reserva, use o seguinte exemplo de código:

    /*
     * 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ão

  • Para visualizar uma lista de suas reservas, use o seguinte exemplo de código:

    # 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 visualizar os detalhes de uma reserva, use o seguinte exemplo de código:

    # 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 visualizar uma lista de suas reservas, faça uma solicitação GET para o método reservations.list :

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

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto onde você criou suas reservas.

    • ZONE : a zona onde existem suas reservas.

    A saída é semelhante ao exemplo a seguir:

    {
      "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 uma lista de reservas usando uma expressão de filtro , inclua o parâmetro de consulta filter :

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

    Substitua FILTER_EXPRESSION por uma expressão de filtro que use valores codificados em URL .

  • Para visualizar os detalhes de uma reserva, faça uma solicitação GET ao método reservations.get .

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

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto onde você criou a reserva.

    • ZONE : a zona onde existe a reserva.

    • RESERVATION_NAME : o nome de uma reserva existente.

    A saída é semelhante ao exemplo a seguir:

    {
      "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 solicitações de reserva

Para visualizar as configurações de uma ou mais solicitações de reserva futuras, use um dos seguintes métodos descritos nesta seção:

  • Para ter uma visão geral de todas as futuras solicitações de reserva em seu projeto, veja uma lista de suas solicitações.

  • Para visualizar os detalhes completos de uma única solicitação de reserva futura, visualize os detalhes da solicitação.

Para visualizar futuras solicitações de reserva, selecione uma das seguintes opções:

Console

  1. No console do Google Cloud, acesse a página Reservas .

    Ir para Reservas

  2. Clique na guia Reservas futuras .

    A tabela lista cada solicitação de reserva futura e cada coluna da tabela descreve uma propriedade.

  3. Opcional: Para refinar sua lista de solicitações, no campo Filtro , selecione as propriedades pelas quais deseja filtrar as solicitações.

  4. Para visualizar os detalhes de uma solicitação, na coluna Nome , clique no nome da solicitação. Uma página que fornece os detalhes da futura solicitação de reserva é aberta.

gcloud

  • Para visualizar uma lista de suas futuras solicitações de reserva, use o comando gcloud beta compute future-reservations list :

    gcloud beta compute future-reservations list
    

    A saída é semelhante ao exemplo a seguir:

    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 uma lista de futuras solicitações de reserva usando uma expressão de filtro , inclua a sinalização --filter :

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

    Substitua FILTER_EXPRESSION por uma expressão de filtro.

  • Para visualizar os detalhes de uma solicitação de reserva futura, use o comando gcloud beta compute future-reservations describe :

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

    Substitua o seguinte:

    • FUTURE_RESERVATION_NAME : o nome de uma solicitação de reserva futura existente.

    • ZONE : a zona onde existe o pedido de reserva futura.

    A saída é semelhante ao exemplo a seguir:

    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 visualizar uma lista de suas futuras solicitações de reserva, faça uma solicitação GET para o método beta futureReservations.list :

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

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto onde você criou suas futuras solicitações de reserva.

    • ZONE : a zona onde existem suas futuras solicitações de reserva.

    A saída é semelhante ao exemplo a seguir:

    {
      "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 uma lista de futuras solicitações de reserva usando uma expressão de filtro , inclua o parâmetro de consulta filter :

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

    Substitua FILTER_EXPRESSION por uma expressão de filtro que use valores codificados em URL .

  • Para visualizar os detalhes de uma solicitação de reserva futura, faça uma solicitação GET para o método beta futureReservations.get :

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

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto onde você criou a solicitação de reserva futura.

    • ZONE : a zona onde existe o pedido de reserva futura.

    • FUTURE_RESERVATION_NAME : o nome de uma solicitação de reserva futura existente.

    A saída é semelhante à seguinte:

    {
      "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 o número de instâncias consumíveis

Para determinar o número de instâncias de computação que podem consumir sua capacidade reservada, siga um destes procedimentos:

Instâncias consumíveis em uma reserva

Ao visualizar os detalhes de uma reserva , você pode visualizar quantas instâncias de computação estão consumindo a reserva e quantas instâncias podem consumi-la, verificando os seguintes campos:

  • Contagem garantida ( assuredCount ) : o número de instâncias que estão fisicamente reservadas dentro da zona da reserva. Este número inclui as instâncias reservadas para o seu projeto e para qualquer projeto com o qual uma reserva compartilhada é compartilhada.

  • Contagem total ( count ) : o número de instâncias reservadas especificadas na reserva. Este número deve corresponder à contagem garantida.

  • Máquinas em uso ( inUseCount ) : o número de instâncias em execução no seu projeto, ou um projeto com o qual uma reserva compartilhada é compartilhada, que estão consumindo a reserva.

Por exemplo, se a contagem garantida ( assuredCount ) e a contagem total ( count ) forem ambas 50 e o número de instâncias que consomem a reserva ( inUseCount ) for 25, mais 25 instâncias poderão consumir a reserva antes que ela seja totalmente consumida.

Instâncias consumíveis em uma solicitação de reserva futura

Você pode determinar o número de instâncias de computação para as quais o Compute Engine cria uma reserva em um horário de início de solicitação de reserva futura. Para um rascunho, aprovação pendente ou solicitação aprovada, você pode determinar esse número da seguinte maneira:

  1. Veja quantas instâncias em execução e reservas não utilizadas no seu projeto e em qualquer projeto com o qual a solicitação é compartilhada correspondem às propriedades da solicitação.

  2. Subtraia o número de instâncias em execução correspondentes e reservas não utilizadas da contagem total na solicitação.

Você pode determinar o número de instâncias consumíveis para solicitações únicas ou múltiplas de uma só vez. Para várias solicitações, use o console do Google Cloud ou a API REST. Para solicitações únicas, selecione qualquer uma das seguintes opções:

Console

  1. No console do Google Cloud, acesse a página Reservas .

    Ir para Reservas

  2. Clique na guia Reservas futuras .

    A tabela lista cada solicitação de reserva futura e cada coluna da tabela descreve uma propriedade.

  3. Para determinar o número de instâncias que o Compute Engine planeja reservar para uma solicitação no horário de início, subtraia a coluna Contagem correspondente da coluna Contagem total .

    A coluna Contagem correspondente mostra um dos seguintes avisos:

    • A contagem de correspondências é zero : não há instâncias em execução correspondentes ou reservas não utilizadas no seu projeto ou em qualquer projeto com o qual sua solicitação seja compartilhada.

    • A contagem correspondente é igual à contagem total : o Compute Engine não reservará nenhuma instância para sua solicitação no horário de início.

    Se você modificar uma solicitação ou criar novas instâncias ou reservas que correspondam à solicitação, o Compute Engine atualizará a coluna Contagem correspondente em 30 minutos.

  4. Opcional: para verificar quando a coluna Contagem correspondente foi atualizada pela última vez em uma solicitação, faça o seguinte:

    1. Na coluna Nome , clique no nome da solicitação. Uma página que fornece os detalhes da futura solicitação de reserva é aberta.

    2. Na seção Detalhes do recurso , verifique o campo Hora da última avaliação de uso correspondente .

gcloud

  1. Para visualizar os detalhes de uma solicitação de reserva futura, use o comando gcloud beta compute future-reservations describe :

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

    Substitua o seguinte:

    • FUTURE_RESERVATION_NAME : o nome de uma solicitação de reserva futura existente.

    • ZONE : a zona onde existe o pedido de reserva futura.

    Na saída, encontre os campos count e totalCount :

    ...
    specificSkuProperties:
      ...
      totalCount: '100'
    status:
      existingMatchingUsageInfo:
        count: '50'
        timestamp: '2025-03-30T01:00:00Z'
      ...
      procurementStatus: DRAFTING
    ...
    
  2. Subtraia o valor de count de totalCount . Por exemplo, se count for 50 e totalCount for 100, o Compute Engine criará automaticamente uma reserva para 50 instâncias no horário de início da solicitação.

    Se você modificar a solicitação ou criar novas instâncias ou reservas que correspondam à solicitação, o Compute Engine atualizará o campo existingMatchingUsageInfo em 30 minutos. Para verificar quando este campo foi atualizado pela última vez, verifique o valor de existingMatchingUsageInfo.timestamp .

DESCANSAR

  1. Para visualizar uma lista de suas futuras solicitações de reserva, faça uma solicitação GET para o método beta futureReservations.list . No URL da solicitação, inclua o parâmetro de consulta filter e especifique para mostrar apenas os campos name , specificSkuProperties e status :

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

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto onde você criou suas futuras solicitações de reserva.

    • ZONE : a zona onde existe o pedido de reserva futura.

    Na saída, encontre os campos count e totalCount para cada rascunho, aprovação pendente ou solicitação aprovada:

    {
      "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 solicitação, subtraia o valor de count de totalCount . Por exemplo, se count for 50 e totalCount for 100, o Compute Engine criará automaticamente uma reserva para 50 instâncias no horário de início da solicitação.

    Se você modificar uma solicitação ou criar novas instâncias ou reservas que correspondam à solicitação, o Compute Engine atualizará o campo existingMatchingUsageInfo em 30 minutos. Para verificar quando este campo foi atualizado pela última vez, verifique o valor de existingMatchingUsageInfo.timestamp .

O que vem a seguir