Conferir reservas ou solicitações de reserva futuras


Neste documento, explicamos como visualizar suas reservas ou solicitações de reserva adiantada. Para saber mais sobre os diferentes tipos de reservas, consulte Escolher um tipo de reserva.

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

  • Ver configurações de reserva. Essa análise ajuda a verificar os detalhes das 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

Só é possível acessar uma reserva compartilhada ou uma solicitação de reserva adiantada compartilhada no projeto em que ela foi criada.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    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. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. Go

        Para usar os exemplos Go desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

        1. Install the Google Cloud CLI.

        2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        3. To initialize the gcloud CLI, run the following command:

          gcloud init
        4. If you're using a local shell, then create local authentication credentials for your user account:

          gcloud auth application-default login

          You don't need to do this if you're using Cloud Shell.

          If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

        Confira mais informações em Set up authentication for a local development environment.

        Java

        Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

        1. Install the Google Cloud CLI.

        2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        3. To initialize the gcloud CLI, run the following command:

          gcloud init
        4. If you're using a local shell, then create local authentication credentials for your user account:

          gcloud auth application-default login

          You don't need to do this if you're using Cloud Shell.

          If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

        Confira mais informações em Set up authentication for a local development environment.

        Node.js

        Para usar os exemplos Node.js desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

        1. Install the Google Cloud CLI.

        2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        3. To initialize the gcloud CLI, run the following command:

          gcloud init
        4. If you're using a local shell, then create local authentication credentials for your user account:

          gcloud auth application-default login

          You don't need to do this if you're using Cloud Shell.

          If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

        Confira mais informações em Set up authentication for a local development environment.

        Python

        Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.

        1. Install the Google Cloud CLI.

        2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        3. To initialize the gcloud CLI, run the following command:

          gcloud init
        4. If you're using a local shell, then create local authentication credentials for your user account:

          gcloud auth application-default login

          You don't need to do this if you're using Cloud Shell.

          If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

        Confira mais informações em Set up authentication for a local development environment.

        REST

        Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud .

Funções exigidas

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

Esse papel predefinido contém as permissões necessárias para visualizar reservas ou solicitações de reserva adiantada. Para conferir 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 adiantada:

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

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Ver configurações de reserva

As seções a seguir explicam como conferir as configurações das suas reservas ou solicitações de reserva adiantadas.

Ver reservas

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

  • Para conferir uma visão geral de todas as reservas no seu projeto, consulte uma lista de reservas.

  • Para conferir todos os detalhes de uma única reserva, consulte os detalhes dela.

Para conferir os campos deleteAtTime e reservationSharingPolicy (prévia) em uma reserva, consulte os detalhes de uma reserva usando a Google Cloud CLI ou consulte as reservas usando a API REST. Se você não precisar desses campos, selecione uma das seguintes opções para ver as reservas:

Console

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

    Acessar "Reservas"

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

  2. Opcional: na tabela Reservas imediatas, faça uma ou ambas as ações a seguir:

    • Para mostrar a contagem garantida das suas reservas, clique em Opções de exibição de colunas..., marque a caixa de seleção Contagem garantida e clique em OK.

    • Para refinar sua lista de reservas, no campo Filtro, selecione as propriedades que você quer usar para filtrar as reservas.

  3. Para conferir os detalhes de uma reserva, na coluna Nome, clique no nome da reserva. Uma página com os detalhes da reserva será aberta.

gcloud

  • Para ver uma lista das suas reservas, use o comando gcloud compute reservations list:

    gcloud compute reservations list
    

    A resposta será semelhante a:

    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
    

    Para refinar uma lista de reservas usando uma expressão de filtro, inclua a flag --filter:

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

    Substitua FILTER_EXPRESSION por uma expressão de filtro.

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

    gcloud compute reservations describe RESERVATION_NAME \
        --zone=ZONE
    

    Substitua:

    • RESERVATION_NAME: o nome de uma reserva.

    • ZONE: a zona em que a reserva existe.

    A resposta será semelhante a:

    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
    

Go

  • Para conferir uma lista das suas reservas, use o exemplo de código a seguir:

    // 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 conferir 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 conferir uma lista das suas reservas, use o exemplo de código a seguir:

    /*
     * 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 conferir 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 conferir uma lista das suas reservas, use o exemplo de código a seguir:

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

Python

  • Para conferir uma lista das suas reservas, use o exemplo de código a seguir:

    # 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 conferir 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
    
    
    

REST

  • Para ver uma lista das suas reservas, faça uma solicitação GET ao método reservations.list:

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

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou as reservas.

    • ZONE: a zona em que suas reservas estão localizadas.

    A resposta será semelhante a:

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

    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 para o método reservations.get.

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

    Substitua:

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

    • ZONE: a zona em que a reserva existe.

    • RESERVATION_NAME: o nome de uma reserva.

    A resposta será semelhante a:

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

Conferir futuras solicitações de reserva

Para conferir as configurações de uma ou mais solicitações de reserva adiantada, use um dos métodos a seguir descritos nesta seção:

  • Para conferir uma visão geral de todas as solicitações de reserva adiantadas no projeto, consulte uma lista das suas solicitações.

  • Para conferir todos os detalhes de uma única solicitação de reserva adiantada, acesse os detalhes dela.

Para conferir as solicitações de reserva adiantada, selecione uma das seguintes opções:

Console

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

    Acessar "Reservas"

  2. Clique na guia Reservas adiantadas.

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

  3. Opcional: para refinar sua lista de solicitações, no campo Filtro, selecione as propriedades que você quer usar para filtrar as solicitações.

  4. Para conferir os detalhes de uma solicitação, clique no nome dela na coluna Nome. Uma página com os detalhes da solicitação de reserva adiantada será aberta.

gcloud

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

    gcloud beta compute future-reservations list
    

    A resposta será semelhante a:

    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
    

    Para refinar uma lista de solicitações de reserva adiantada usando uma expressão de filtro, inclua a flag --filter:

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

    Substitua FILTER_EXPRESSION por uma expressão de filtro.

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

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

    Substitua:

    • FUTURE_RESERVATION_NAME: o nome de uma solicitação de reserva adiantada atual.

    • ZONE: a zona em que a solicitação de reserva adiantada existe.

    A resposta será semelhante a:

    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

  • Para ver uma lista das suas solicitações de reserva adiantada, faça uma solicitação GET para o método futureReservations.list da versão Beta:

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

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou as solicitações de reserva adiantada.

    • ZONE: a zona em que seus pedidos de reserva adiantada estão localizados.

    A resposta será semelhante a:

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

    Para refinar uma lista de solicitações de reserva adiantadas 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 ver os detalhes de uma solicitação de reserva adiantada, faça uma solicitação GET para o método futureReservations.get da versão Beta:

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

    Substitua:

    • PROJECT_ID: o ID do projeto em que você criou a solicitação de reserva adiantada.

    • ZONE: a zona em que a solicitação de reserva adiantada existe.

    • FUTURE_RESERVATION_NAME: o nome de uma solicitação de reserva adiantada atual.

    O resultado será assim:

    {
      "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, faça o seguinte:

Instâncias consumíveis em uma reserva

Ao ver os detalhes de uma reserva, é possível conferir quantas instâncias de computação estão consumindo a reserva e quantas podem consumir. Para isso, verifique os seguintes campos:

  • Contagem garantida (assuredCount): o número de instâncias que são reservadas fisicamente na zona da reserva. Esse número inclui as instâncias reservadas para seu projeto e para qualquer projeto com que uma reserva compartilhada seja compartilhada.

  • Contagem total (count): o número de instâncias reservadas especificado na reserva. Esse número precisa corresponder à contagem garantida.

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

Por exemplo, se a contagem garantida (assuredCount) e a contagem total (count) forem 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 adiantada

É possível determinar o número de instâncias de computação para as quais o Compute Engine cria uma reserva no horário de início de uma solicitação de reserva adiantada. Para um rascunho, uma solicitação pendente de aprovação ou aprovada, é possível determinar esse número da seguinte maneira:

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

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

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

Console

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

    Acessar "Reservas"

  2. Clique na guia Reservas adiantadas.

    A tabela lista cada solicitação de reserva adiantada, e cada coluna 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 de correspondências da coluna Contagem total.

    A coluna Contagem de correspondências mostra um dos seguintes avisos:

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

    • A contagem correspondente é igual à contagem total: o Compute Engine não vai 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 vai atualizar a coluna Contagem de correspondência em até 30 minutos.

  4. Opcional: para verificar quando a coluna Contagem de correspondências 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 com os detalhes da solicitação de reserva adiantada é aberta.

    2. Na seção Detalhes do recurso, verifique o campo Horário da avaliação de último uso correspondente.

gcloud

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

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

    Substitua:

    • FUTURE_RESERVATION_NAME: o nome de uma solicitação de reserva adiantada atual.

    • ZONE: a zona em que a solicitação de reserva adiantada existe.

    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 vai 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 vai atualizar o campo existingMatchingUsageInfo em até 30 minutos. Para verificar quando esse campo foi atualizado pela última vez, confira o valor de existingMatchingUsageInfo.timestamp.

REST

  1. Para ver uma lista das suas solicitações de reserva adiantada, faça uma solicitação GET para o método futureReservations.list da versão Beta. 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:

    • PROJECT_ID: o ID do projeto em que você criou as solicitações de reserva adiantada.

    • ZONE: a zona em que a solicitação de reserva adiantada existe.

    Na saída, encontre os campos count e totalCount para cada rascunho, solicitação pendente de aprovação ou 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 vai 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 vai atualizar o campo existingMatchingUsageInfo em até 30 minutos. Para verificar quando esse campo foi atualizado pela última vez, confira o valor de existingMatchingUsageInfo.timestamp.

Instâncias consumíveis em uma solicitação de reserva adiantada no modo de calendário

Ao ver os detalhes de uma solicitação de reserva adiantada, é possível conferir quantas instâncias de computação o Compute Engine planeja provisionar no horário de início da solicitação. O Compute Engine cria o número de instâncias especificado na solicitação, independente do número de instâncias correspondentes no seu projeto ou em qualquer projeto com que a solicitação seja compartilhada.

A seguir