Veja reservas ou pedidos de reservas futuras


Este documento explica como ver as suas reservas ou pedidos de reserva futuros. Para saber mais sobre os diferentes tipos de reservas, consulte o artigo Escolha um tipo de reserva.

Quando vê as suas reservas ou pedidos de reserva futuros, pode fazer o seguinte:

  • Ver definições de reserva. Esta revisão ajuda a validar os detalhes das suas reservas, garantir que satisfazem as suas necessidades e planear a capacidade.

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

Limitações

Só pode ver uma reserva partilhada ou um pedido de reserva futura partilhado no projeto onde o criou.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    Go

    Para usar os Go exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      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.

    Para mais informações, consulte Set up authentication for a local development environment.

    Java

    Para usar os Java exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      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.

    Para mais informações, consulte Set up authentication for a local development environment.

    Node.js

    Para usar os Node.js exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      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.

    Para mais informações, consulte Set up authentication for a local development environment.

    Python

    Para usar os Python exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      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.

    Para mais informações, consulte Set up authentication for a local development environment.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Funções necessárias

Para receber as autorizações de que precisa para ver reservas ou pedidos de reserva futuros, peça ao seu administrador para lhe conceder a função do IAM administrador de computação (roles/compute.admin) no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para ver reservas ou pedidos de reserva futuros. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

As seguintes autorizações são necessárias para ver reservas ou pedidos de reserva futuros:

  • Para ver uma lista de reservas: compute.reservations.list no projeto
  • Para ver uma lista de pedidos de reserva futuros: compute.futureReservations.list no projeto
  • Para ver os detalhes de uma reserva: compute.reservations.get no projeto
  • Para ver os detalhes de um pedido de reserva futuro: compute.futureReservations.get no projeto

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Veja as definições de reserva

As secções seguintes explicam como ver as definições das suas reservas ou pedidos de reserva futuros.

Ver reservas

Para ver as definições de uma ou mais reservas, use um dos seguintes métodos descritos nesta secção:

  • Para ver uma vista geral de todas as reservas no seu projeto, veja uma lista das suas reservas.

  • Para ver os detalhes completos de uma única reserva, consulte os detalhes da reserva.

Para ver os campos deleteAtTime e reservationSharingPolicy (Pré-visualização) numa reserva, veja os detalhes de uma reserva através da CLI Google Cloud ou veja as reservas através da API REST. Se não precisar destes campos, pode ver as reservas selecionando qualquer uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página Reservas.

    Aceda a Reservas

    No separador Reservas a pedido (predefinição), a tabela apresenta uma lista de cada reserva e cada coluna da tabela descreve uma propriedade.

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

    • Para apresentar a quantidade garantida das suas reservas, clique em Opções de apresentação de colunas…, selecione a caixa de verificação Quantidade garantida e, de seguida, clique em OK.

    • Para refinar a lista de reservas, no campo Filtrar, selecione as propriedades pelas quais quer filtrar as reservas.

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

gcloud

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

    gcloud compute reservations list
    

    O resultado é semelhante ao seguinte exemplo:

    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 através de 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 ver 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.

    O resultado é semelhante ao seguinte exemplo:

    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 ver uma lista das 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 ver 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 ver uma lista das 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 ver 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 ver uma lista das 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 ver 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 ver uma lista das 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 ver 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 um pedido GET ao 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 criou as suas reservas.

    • ZONE: a zona onde existem as suas reservas.

    O resultado é semelhante ao seguinte exemplo:

    {
      "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 através de 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 de URL.

  • Para ver os detalhes de uma reserva, faça um pedido 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 criou a reserva.

    • ZONE: a zona onde existe a reserva.

    • RESERVATION_NAME: o nome de uma reserva existente.

    O resultado é semelhante ao seguinte exemplo:

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

Veja pedidos de reserva futuros

Para ver as definições de um ou mais pedidos de reserva futuros, use um dos seguintes métodos descritos nesta secção:

  • Para ver uma vista geral de todos os pedidos de reserva futuros no seu projeto, consulte uma lista dos seus pedidos.

  • Para ver os detalhes completos de um único pedido de reserva futura, veja os detalhes do pedido.

Para ver pedidos de reserva futuros, selecione uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página Reservas.

    Aceda a Reservas

  2. Clique no separador Reservas futuras.

    A tabela apresenta cada pedido de reserva futuro e cada coluna da tabela descreve uma propriedade.

  3. Opcional: para refinar a lista de pedidos, no campo Filtro, selecione as propriedades pelas quais quer filtrar os pedidos.

  4. Para ver os detalhes de um pedido, na coluna Nome, clique no nome do pedido. É aberta uma página com os detalhes do pedido de reserva futuro.

gcloud

  • Para ver uma lista dos seus pedidos de reserva futuros, use o comando gcloud beta compute future-reservations list:

    gcloud beta compute future-reservations list
    

    O resultado é semelhante ao seguinte exemplo:

    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 pedidos de reserva futuros através de 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 ver os detalhes de um pedido de reserva futuro, 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 um pedido de reserva futuro existente.

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

    O resultado é semelhante ao seguinte exemplo:

    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 dos seus pedidos de reserva futuros, faça um GET pedido ao método futureReservations.list beta:

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

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto onde criou os seus pedidos de reserva futuros.

    • ZONE: a zona onde existem os seus futuros pedidos de reserva.

    O resultado é semelhante ao seguinte exemplo:

    {
      "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 pedidos de reserva futuros através de 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 de URL.

  • Para ver os detalhes de um pedido de reserva futuro, faça um GET pedido ao método futureReservations.getbeta:

    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 criou o pedido de reserva futura.

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

    • FUTURE_RESERVATION_NAME: o nome de um pedido de reserva futuro existente.

    O resultado é semelhante ao 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"
    }
    

Determine o número de instâncias consumíveis

Para determinar o número de instâncias de computação que podem consumir a sua capacidade reservada, faça uma das seguintes ações:

Instâncias consumíveis numa reserva

Quando vê os detalhes de uma reserva, pode ver quantas instâncias de computação estão a consumir a reserva e quantas instâncias a podem consumir, verificando os seguintes campos:

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

  • Total count (count): o número de instâncias reservadas especificado na reserva. Este número deve corresponder à quantidade garantida.

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

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

Instâncias consumíveis num pedido de reserva futuro

Pode determinar o número de instâncias de computação para as quais o Compute Engine cria uma reserva numa hora de início de pedido de reserva futura. Para um pedido de rascunho, pendente de aprovação ou aprovado, pode determinar este número da seguinte forma:

  1. Veja quantas instâncias em execução e reservas não usadas no seu projeto, e em qualquer projeto com o qual o pedido seja partilhado, correspondem às propriedades do pedido.

  2. Subtraia o número de instâncias em execução correspondentes e reservas não usadas da contagem total no pedido.

Pode determinar o número de instâncias consumíveis para um ou vários pedidos de uma só vez. Para vários pedidos, use a Google Cloud consola ou a API REST. Para pedidos únicos, selecione qualquer uma das seguintes opções:

Consola

  1. Na Google Cloud consola, aceda à página Reservas.

    Aceda a Reservas

  2. Clique no separador Reservas futuras.

    A tabela apresenta cada pedido de reserva futuro e cada coluna da tabela descreve uma propriedade.

  3. Para determinar o número de instâncias que o Compute Engine planeia reservar para um pedido na respetiva hora de início, subtraia a coluna Quantidade correspondente à coluna Quantidade total.

    A coluna Número de correspondências mostra um dos seguintes avisos:

    • A quantidade correspondente é zero: não existem instâncias em execução correspondentes nem reservas não usadas no seu projeto ou em qualquer projeto com o qual o seu pedido seja partilhado.

    • A quantidade correspondente é igual à quantidade total: o Compute Engine não reserva instâncias para o seu pedido na hora de início.

    Se modificar um pedido ou criar novas instâncias ou reservas que correspondam ao pedido, o Compute Engine atualiza a coluna Quantidade correspondente no prazo de 30 minutos.

  4. Opcional: para verificar quando a coluna Quantidade de correspondências foi atualizada pela última vez num pedido, faça o seguinte:

    1. Na coluna Nome, clique no nome do pedido. É apresentada uma página com os detalhes do pedido de reserva futuro.

    2. Na secção Detalhes do recurso, verifique o campo Hora da última avaliação de utilização da correspondência.

gcloud

  1. Para ver os detalhes de um pedido de reserva futuro, 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 um pedido de reserva futuro existente.

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

    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 a totalCount. Por exemplo, se count for 50 e totalCount for 100, o Compute Engine cria automaticamente uma reserva para 50 instâncias na hora de início do pedido.

    Se modificar o pedido ou criar novas instâncias ou reservas que correspondam ao pedido, o Compute Engine atualiza o campo existingMatchingUsageInfo no prazo de 30 minutos. Para verificar quando este campo foi atualizado pela última vez, verifique o valor de existingMatchingUsageInfo.timestamp.

REST

  1. Para ver uma lista dos seus pedidos de reserva futuros, faça um GETpedido ao método beta futureReservations.list. No URL do pedido, inclua o parâmetro de consulta filter e especifique que só devem ser apresentados 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 criou os seus pedidos de reserva futuros.

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

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

    {
      "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 pedido, subtraia o valor de count a totalCount. Por exemplo, se count for 50 e totalCount for 100, o Compute Engine cria automaticamente uma reserva para 50 instâncias na hora de início do pedido.

    Se modificar um pedido ou criar novas instâncias ou reservas que correspondam ao pedido, o Compute Engine atualiza o campo existingMatchingUsageInfo no prazo de 30 minutos. Para verificar quando este campo foi atualizado pela última vez, verifique o valor de existingMatchingUsageInfo.timestamp.

Instâncias consumíveis num pedido de reserva futuro no modo de calendário

Quando vê os detalhes de um pedido de reserva futuro, pode ver quantas instâncias de computação o Compute Engine planeia aprovisionar na hora de início do pedido. O Compute Engine cria o número de instâncias especificado no pedido, independentemente do número de instâncias correspondentes no seu projeto ou em qualquer projeto com o qual o pedido seja partilhado.

O que se segue?