Criar uma reserva para um projeto único


Neste documento, há informações sobre como criar uma reserva de um projeto único, que pode ser consumida apenas por instâncias de máquina virtual (VM) no mesmo projeto. Para saber mais sobre reservas, consulte Reservas para recursos zonais do Compute Engine.

Para outros métodos de criação de reservas, consulte as seguintes páginas:

  • Se você tiver um compromisso de um ou três anos no projeto atual, seus recursos reservados receberão automaticamente todos os descontos por uso contínuo aplicáveis. Também é possível criar e anexar uma reserva a um compromisso ao comprá-lo. Para saber mais, consulte Anexar reservas a compromissos.

  • Para criar uma reserva que possa ser usada por vários projetos, consulte Criar uma reserva compartilhada.

Antes de começar

  • Revise os requisitos e restrições para reservas.
  • 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 da seguinte maneira.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

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

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

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. 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.

      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 gcloud CLI.

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

        gcloud init

      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 a fim de criar reservas de projeto único, 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 como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para criar reservas de um projeto único. 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 criar reservas de projeto único:

  • compute.reservations.create no projeto
  • Para especificar um modelo de instância: compute.instanceTemplates.useReadOnly no modelo de instância

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

Criar uma reserva de projeto único

Nesta seção, explicamos como criar reservas de projeto único.

Para consumir uma reserva, uma VM precisa ter propriedades que correspondam exatamente essa reserva. Para especificar as propriedades das VMs que você quer reservar, selecione uma das seguintes seções neste documento:

Por padrão, uma reserva pode ser consumida automaticamente por qualquer VM com propriedades correspondentes. Se você quiser controlar o consumo de reservas, siga um ou mais de um destes procedimentos:

Além disso, é possível especificar uma política de posicionamento compacta ao criar uma reserva de projeto único. Uma política de posicionamento compacto especifica que as VMs precisam estar localizadas o mais próximas possível uma da outra para reduzir a latência da rede.

Especificar um modelo de instância

Para criar uma reserva de projeto único especificando um modelo de instância, use o console do Google Cloud, a CLI gcloud ou o REST.

Console

Para criar uma reserva de projeto único especificando um modelo de instância, faça o seguinte:

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

    Acessar "Reservas"

  2. Clique em Criar reserva.

    A página Criar uma reserva é aberta.

  3. No campo Nome, insira um nome para a reserva.

  4. Escolha a Região e a Zona em que você quer reservar recursos.

  5. Na seção Tipo de compartilhamento, clique em Local (padrão).

  6. Na seção Usar com instância de VM, selecione uma das seguintes opções:

    • Permitir que VMs correspondentes consumam essa reserva automaticamente. Clique em Usar reserva automaticamente (padrão).

    • Para consumir os recursos desta reserva apenas ao criar VMs correspondentes que visam especificamente essa reserva por nome, selecione Selecionar reserva específica.

  7. No campo Número de instâncias de VM, insira o número de VMs que você quer reservar.

  8. Na seção Configuração da máquina, faça o seguinte:

    1. Para especificar as propriedades das VMs com base em um modelo de instância, selecione Usar modelo de instância.

    2. No campo Modelo de instância, selecione o modelo de instância de sua escolha. Se você selecionar um modelo de instância regional, só poderá reservar recursos dentro da região do modelo de instância.

  9. Na seção Exclusão automática, é possível ativar a opção para permitir que o Compute Engine exclua automaticamente a reserva em uma data e hora específicas. A exclusão automática de reservas pode ser útil para evitar cobranças desnecessárias quando você para de consumir a reserva.

  10. Para criar a reserva, clique em Criar.

    A página Reservas abre. A criação da reserva de projeto único pode levar até um minuto para ser concluída.

gcloud

Para criar uma reserva de projeto único especificando um modelo de instância, use o comando gcloud compute reservations create.

Para criar uma reserva de projeto único especificando um modelo de instância sem flags opcionais, execute o seguinte comando:

gcloud compute reservations create RESERVATION_NAME \
    --project=PROJECT_ID \
    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Substitua:

  • RESERVATION_NAME: o nome da reserva a ser criada.

  • PROJECT_ID: o ID do projeto em que você quer reservar recursos e onde o modelo de instância existe.

  • LOCATION: o local do modelo de instância. Especifique um dos seguintes valores:

    • Para um modelo de instância global: global

    • Para um modelo de instância regional: regions/REGION. Substitua REGION pela região em que o modelo de instância está. Se você especificar um modelo de instância regional, só será possível reservar VMs dentro da região do modelo de instância.

  • INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância. Se você especificar um modelo de instância que inclua uma política de posicionamento compacto, será necessário especificar a flag --require-specific-reservation. Isso indica que apenas VMs que segmentam especificamente essa reserva podem consumi-la.

  • NUMBER_OF_VMS: o número de VMs a serem reservadas.

  • ZONE: a zona em que os recursos serão reservados.

Por exemplo, para criar uma reserva para dez VMs na zona us-central1-a especificando um modelo de instância global, execute o seguinte comando:

gcloud compute reservations create my-reservation \
    --project=example-project \
    --source-instance-template=projects/example-project/global/example-instance-template \
    --vm-count=10 \
    --zone=us-central1-a

Também é possível realizar uma ou mais das seguintes ações:

  • Para especificar que apenas VMs que segmentam especificamente esta reserva podem consumi-la, inclua a flag --require-specific-reservation.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:

    • Para excluir a reserva em uma data e hora específicas, use o comando gcloud beta compute reservations create e inclua a flag --delete-at-time.

      gcloud beta compute reservations create reservation-example \
          --delete-at-time=DELETE_AT_TIME \
          ...
      

      Substitua DELETE_AT_TIME por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Substitua:

      • YYYY-MM-DD: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-).

      • HH:MM:SS: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:).

      • OFFSET: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique -08:00. Outra possibilidade é não usar ajuste: especifique Z.

    • Para excluir a reserva após uma duração específica, use o comando gcloud beta compute reservations create e inclua a flag --delete-after-duration.

      gcloud beta compute reservations create reservation-example \
          --delete-after-duration=DELETE_AFTER_DURATION \
          ...
      

      Substitua DELETE_AFTER_DURATION por uma duração em dias, horas, minutos ou segundos. Por exemplo, especifique 30m para 30 minutos ou 1d2h3m4s para 1 dia, 2 horas, 3 minutos e 4 segundos.

REST

Para criar uma reserva de projeto único especificando um modelo de instância, faça uma solicitação POST para o método reservations.insert.

Para criar uma reserva de projeto único especificando um modelo de instância sem flags opcionais, faça a seguinte solicitação POST:

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

{
  "name": "RESERVATION_NAME",
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que você quer reservar recursos e onde o modelo de instância existe.

  • ZONE: a zona em que os recursos serão reservados.

  • RESERVATION_NAME: o nome da reserva a ser criada.

  • NUMBER_OF_VMS: o número de VMs a serem reservadas.

  • LOCATION: o local do modelo de instância. Especifique um dos seguintes valores:

    • Para um modelo de instância global: global

    • Para um modelo de instância regional: regions/REGION. Substitua REGION pela região em que o modelo de instância está. Se você especificar um modelo de instância regional, só será possível reservar VMs dentro da região do modelo de instância.

  • INSTANCE_TEMPLATE_NAME: o nome de um modelo de instância. Se você especificar um modelo de instância que inclua uma política de posicionamento compacto, será necessário especificar o campo specificReservationRequired no corpo da solicitação e defini-lo como true. Isso indica que apenas VMs que segmentam especificamente essa reserva podem consumi-la.

Por exemplo, para criar uma reserva para dez VMs na zona us-central1-a especificando um modelo de instância global, faça a seguinte solicitação POST:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations

{
  "name": "my-reservation",
  "specificReservation": {
    "count": "10",
    "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template"
  }
}

Também é possível realizar uma ou mais das seguintes ações:

  • Para especificar que apenas VMs que visam especificamente essa reserva possam consumi-la, inclua o campo specificReservationRequired no corpo da solicitação e defina-o como true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:

    • Para excluir a reserva em uma data e hora específicas, faça uma solicitação POST para o método beta.reservations.insert. No corpo da solicitação, inclua o campo deleteAtTime.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAtTime": "DELETE_AT_TIME",
        ...
      }
      

      Substitua DELETE_AT_TIME por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Substitua:

      • YYYY-MM-DD: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-).

      • HH:MM:SS: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:).

      • OFFSET: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique -08:00. Outra possibilidade é não usar ajuste: especifique Z.

    • Para excluir a reserva após uma duração específica, faça uma solicitação POST para o método beta.reservations.insert. No corpo da solicitação, inclua o campo deleteAfterDuration.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAfterDuration": {
          "seconds": "DELETE_AFTER_DURATION"
        },
        ...
      }
      

      Substitua DELETE_AFTER_DURATION por uma duração em segundos. Por exemplo, especifique 86400 para 86.400 segundos (1 dia).

Especificar propriedades diretamente

Para criar uma reserva de projeto único especificando as propriedades diretamente, use o console do Google Cloud, a CLI gcloud, o Terraform ou o REST.

Console

Para criar uma reserva de projeto único, faça o seguinte:

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

    Acessar "Reservas"

  2. Clique em Criar reserva.

    A página Criar uma reserva é aberta.

  3. No campo Nome, insira um nome para a reserva.

  4. Escolha a Região e a Zona em que você quer reservar recursos.

  5. Na seção Tipo de compartilhamento, clique em Local (padrão).

  6. Na seção Usar com instância de VM, selecione uma das seguintes opções:

    • Permitir que VMs correspondentes consumam essa reserva automaticamente. Clique em Usar reserva automaticamente (padrão).

    • Para consumir os recursos desta reserva apenas ao criar VMs correspondentes que visam especificamente essa reserva por nome, selecione Selecionar reserva específica.

  7. No campo Número de instâncias de VM, insira o número de VMs que você quer reservar.

  8. Na seção Configuração da máquina, selecione Especificar tipo de máquina e especifique o seguinte:

    1. Nos campos Família de máquinas, Série e Tipo de máquina, selecione uma família, uma série e um tipo de máquina.

    2. Opcional: para especificar uma plataforma de CPU mínima e/ou GPUs, faça o seguinte:

      1. Para expandir a seção Plataforma de CPU e GPU, clique na seta de expansão .

      2. Opcional: para especificar uma plataforma mínima de CPU, selecione uma opção na lista Plataforma de CPU.

      3. Opcional: para adicionar GPUs, clique em Adicionar GPU. Em seguida, nos campos Tipo de GPU e Número de GPUs, selecione o tipo e o número de GPUs para cada VM.

    3. Opcional: para adicionar SSDs locais, faça o seguinte:

      1. No campo Número de discos, selecione o número de SSDs locais para cada VM.

      2. No campo Tipo de interface, selecione a interface dos SSDs locais.

    4. Opcional: para especificar uma política de posicionamento compacto para uma reserva que atenda às exigências, clique no botão Selecionar ou criar uma política de posição em grupo e, em seguida, realize uma das seguintes ações:

      • Para criar uma política de posicionamento compacto a ser especificada nessa reserva, siga estas etapas:

        1. Clique em Criar política de posição em grupo.

          O painel Criar uma política de posicionamento em grupo é exibido.

        2. No campo Nome da política, insira um nome para sua política.

        3. Clique em Criar.

          A criação da política de posicionamento compacto pode levar alguns segundos para ser concluída.

      • Caso contrário, selecione uma política de posicionamento compacto atual.

  9. Na seção Exclusão automática, é possível ativar a opção para permitir que o Compute Engine exclua automaticamente a reserva em uma data e hora específicas. A exclusão automática de reservas pode ser útil para evitar cobranças desnecessárias quando você para de consumir a reserva.

  10. Para criar a reserva, clique em Criar.

    Criar uma reserva de projeto único pode levar algum tempo. Essa ação redireciona você para a página Reservas.

gcloud

Para criar uma reserva de projeto único, use o comando gcloud compute reservations create.

Para criar uma reserva de projeto único sem flags opcionais, execute o seguinte comando:

gcloud compute reservations create RESERVATION_NAME \
    --machine-type=MACHINE_TYPE \
    --project=PROJECT_ID \
    --vm-count=NUMBER_OF_VMS \
    --zone=ZONE

Substitua:

  • RESERVATION_NAME: o nome da reserva a ser criada.

  • MACHINE_TYPE: um tipo de máquina a ser usado em cada VM. Especifique um dos seguintes valores:

    • Para um tipo de máquina predefinido: MACHINE_FAMILY-standard-CPUS.

    • Para um tipo de máquina personalizado: MACHINE_FAMILY-custom-CPUS-MEMORY. Antes de especificar um tipo de máquina personalizado, analise as limitações para VMs com tipos de máquina personalizados.

    Substitua:

    • MACHINE_FAMILY: a família de máquinas.

    • CPUS: o número de vCPUs.

    • MEMORY: a memória total para uma instância reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB.

    Por exemplo, para especificar um tipo de máquina personalizado N2 com 4 vCPUs e 5 GB de memória, que é de 5.120 MB, especifique n2-custom-4-5120.

  • PROJECT_ID: o ID do projeto em que você quer reservar recursos.

  • NUMBER_OF_VMS: o número de VMs a serem reservadas.

  • ZONE: a zona em que os recursos serão reservados.

Por exemplo, para criar uma reserva na zona us-central1-a para dez VMs, cada uma usando um tipo de máquina predefinido N2 com quatro vCPUs, execute o seguinte comando:

gcloud compute reservations create my-reservation \
    --machine-type=n2-standard-4 \
    --project=example-project \
    --vm-count=10 \
    --zone=us-central1-a

Também é possível realizar uma ou mais das seguintes ações:

  • Para adicionar unidades de processamento gráfico (GPUs) a cada VM reservada, inclua a flag --accelerator.

    gcloud compute reservations create my-reservation \
        --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE
        ...
    

    Substitua:

    • NUMBER_OF_ACCELERATORS: o número de GPUs a serem adicionadas por VM reservada.

    • ACCELERATOR_TYPE: o tipo de GPU a ser adicionada às VMs reservadas.

    Verifique se o tipo de máquina especificado na reserva é compatível com os tipos de GPUs especificados e se a GPU está disponível na zona em que você quer reservar recursos. Caso contrário, a criação da reserva falhará.

  • Para adicionar um ou mais SSDs locais a cada VM reservada, inclua uma ou mais flags --local-ssd. É possível especificar até 24 SSDs locais. Cada SSD local tem 375 GB.

    Por exemplo, para especificar dois SSDs locais ao criar uma reserva, inclua duas flags --local-ssd.

    gcloud compute reservations create my-reservation \
        --local-ssd=size=375,interface=INTERFACE_1 \
        --local-ssd=size=375,interface=INTERFACE_2 \
        ...
    

    Substitua INTERFACE_1 e INTERFACE_2 pelo tipo de interface que você quer que o SSD local use. Especifique um dos seguintes valores:

    • Para interfaces de disco NVME: nvme

    • Para interfaces de disco SCSI: scsi.

    Verifique se o tipo de máquina especificado para as VMs reservadas é compatível com as interfaces de disco escolhidas. Caso contrário, a criação da reserva falhará. Para mais informações, veja como escolher uma interface de disco.

  • Para que as VMs reservadas usem uma plataforma mínima de CPU específica, em vez da plataforma de CPU padrão da zona, inclua a flag --min-cpu-platform.

    gcloud compute reservations create my-reservation \
        --min-cpu-platform="MIN_CPU_PLATFORM" \
        ...
    

    Substitua MIN_CPU_PLATFORM por uma plataforma de CPU mínima. Para garantir que uma plataforma de CPU esteja disponível na zona em que você está reservando recursos, confira as plataformas de CPU disponíveis por zona.

  • Para especificar que apenas VMs que segmentam especificamente esta reserva podem consumi-la, inclua a flag --require-specific-reservation.

    gcloud compute reservations create example-reservation \
        --require-specific-reservation \
        ...
    
  • Para especificar uma política de posicionamento compacto para menor latência de rede entre as VMs, inclua a flag --resource-policies=policy.

    gcloud compute reservations create example-reservation \
        --resource-policies=policy=COMPACT_PLACEMENT_POLICY_NAME \
        --require-specific-reservation \
        ...
    

    Substitua COMPACT_PLACEMENT_POLICY_NAME pelo nome de uma política de posicionamento compacto atual. Além disso, para evitar erros ao criar uma reserva de projeto único que especifica uma política de posicionamento compacta, especifique o seguinte:

    • Um tipo de máquina compatível com políticas de posicionamento compacto.

    • Uma zona dentro da região em que a política de posicionamento compacto está localizada.

    • A sinalização --require-specific-reservation Isso indica que apenas VMs que segmentam especificamente a reserva podem consumi-la.

  • Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:

    • Para excluir a reserva em uma data e hora específicas, use o comando gcloud beta compute reservations create e inclua a flag --delete-at-time.

      gcloud beta compute reservations create reservation-example \
          --delete-at-time=DELETE_AT_TIME \
          ...
      

      Substitua DELETE_AT_TIME por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Substitua:

      • YYYY-MM-DD: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-).

      • HH:MM:SS: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:).

      • OFFSET: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique -08:00. Outra possibilidade é não usar ajuste: especifique Z.

    • Para excluir a reserva após uma duração específica, use o comando gcloud beta compute reservations create e inclua a flag --delete-after-duration.

      gcloud beta compute reservations create reservation-example \
          --delete-after-duration=DELETE_AFTER_DURATION \
          ...
      

      Substitua DELETE_AFTER_DURATION por uma duração em dias, horas, minutos ou segundos. Por exemplo, especifique 30m para 30 minutos ou 1d2h3m4s para 1 dia, 2 horas, 3 minutos e 4 segundos.

Terraform

Para criar uma reserva de projeto único, use o recurso google_compute_reservation do Terraform.


resource "google_compute_reservation" "default" {
  name = "gce-reservation-local"
  zone = "us-central1-a"

  /**
   * To specify a single-project reservation, omit the share_settings block
   * (default) or set the share_type field to LOCAL.
   */
  share_settings {
    share_type = "LOCAL"
  }

  specific_reservation {
    count = 1
    instance_properties {
      machine_type = "n2-standard-2"
    }
  }

  /**
   * To let VMs with affinity for any reservation consume this reservation, omit
   * the specific_reservation_required field (default) or set it to false.
   */
  specific_reservation_required = false
}

Para mais informações sobre como usar o Terraform, consulte Como usar o Terraform com o Google Cloud.

REST

Para criar uma reserva de projeto único, faça uma solicitação POST para o método reservations.insert.

Para criar uma reserva de projeto único sem campos opcionais, faça a seguinte flag POST:

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

{
  "name": "RESERVATION_NAME",
  "specificReservation": {
    "count": "NUMBER_OF_VMS",
    "instanceProperties": {
      "machineType": "MACHINE_TYPE",
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que você quer reservar recursos.

  • ZONE: a zona em que os recursos serão reservados.

  • RESERVATION_NAME: o nome da reserva a ser criada.

  • NUMBER_OF_VMS: o número de VMs a serem reservadas.

  • MACHINE_TYPE: um tipo de máquina a ser usado em cada VM. Especifique um dos seguintes valores:

    • Para um tipo de máquina predefinido: MACHINE_FAMILY-standard-CPUS.

    • Para um tipo de máquina personalizado: MACHINE_FAMILY-custom-CPUS-MEMORY. Antes de especificar um tipo de máquina personalizado, analise as limitações para VMs com tipos de máquina personalizados.

    Substitua:

    • MACHINE_FAMILY: a família de máquinas.

    • CPUS: o número de vCPUs.

    • MEMORY: a memória total para uma instância reservada. A memória precisa ser um múltiplo de 256 MB e ser fornecida em MB.

    Por exemplo, para especificar um tipo de máquina personalizado N2 com 4 vCPUs e 5 GB de memória, que é de 5.120 MB, especifique n2-custom-4-5120.

Por exemplo, para criar uma reserva na zona us-central1-a para dez VMs, cada uma usando um tipo de máquina predefinido N2 com quatro vCPUs, faça a seguinte solicitação POST:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations

{
  "name": "my-reservation",
  "specificReservation": {
    "count": "10",
    "instanceProperties": {
      "machineType": "n2-standard-4",
    }
  }
}

Também é possível realizar uma ou mais das seguintes ações:

  • Para adicionar unidades de processamento gráfico (GPUs) a cada VM reservada, inclua o campo guestAccelerators no corpo da solicitação.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "guestAccelerators": [
            {
              "acceleratorCount": NUMBER_OF_ACCELERATORS,
              "acceleratorType": "ACCELERATOR_TYPE"
            }
          ],
          ...
        },
        ...
      }
    }
    

    Substitua:

    • NUMBER_OF_ACCELERATORS: o número de GPUs a serem adicionadas por VM reservada.

    • ACCELERATOR_TYPE: o tipo de GPU a ser adicionada às VMs reservadas.

    Verifique se o tipo de máquina especificado na reserva é compatível com os tipos de GPUs especificados e se a GPU está disponível na zona em que você quer reservar recursos. Caso contrário, a criação da reserva falhará.

  • Para adicionar um ou mais SSDs locais a cada VM reservada, inclua o campo localSsds no corpo da solicitação. É possível especificar até 24 SSDs locais. Cada SSD local tem 375 GB.

    Por exemplo, para especificar dois SSDs locais ao criar uma reserva, especifique o seguinte:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "localSsds": [
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_2"
            }
          ],
          ...
        },
        ...
      }
    }
    

    Substitua INTERFACE_1 e INTERFACE_2 pelo tipo de interface que você quer que cada SSD local use. Especifique um dos seguintes valores:

    • Para interfaces de disco NVME: NVME

    • Para interfaces de disco SCSI: SCSI.

    Verifique se o tipo de máquina especificado para as VMs reservadas é compatível com as interfaces de disco escolhidas. Caso contrário, a criação da reserva falhará. Para mais informações, veja como escolher uma interface de disco.

  • Para que as VMs reservadas usem uma plataforma mínima de CPU específica, em vez da plataforma de CPU padrão da zona, inclua o campo minCpuPlatform no corpo da solicitação.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservation": {
        "instanceProperties": {
          "minCpuPlatform": "MIN_CPU_PLATFORM",
          ...
        },
        ...
      }
    }
    

    Substitua MIN_CPU_PLATFORM por uma plataforma de CPU mínima. Para garantir que uma plataforma de CPU esteja disponível na zona em que você está reservando recursos, confira as plataformas de CPU disponíveis por zona.

  • Para especificar uma política de posicionamento compacto e reduzir a latência de rede entre as VMs reservadas, inclua o campo resourcePolicies no corpo da solicitação.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "resourcePolicies": {
        "policy" : "projects/example-project/regions/REGION/resourcePolicies/COMPACT_PLACEMENT_POLICY_NAME"
      },
      "specificReservationRequired": true,
      ...
    }
    

    Substitua:

    • REGION: a região em que a política de posicionamento compacto está localizada. É preciso reservar recursos dentro da mesma região da política de colocação. Caso contrário, a criação da reserva falhará.

    • COMPACT_PLACEMENT_POLICY_NAME: o nome de uma política de posicionamento compacto.

    Além disso, para evitar erros ao criar uma reserva de projeto único que especifica uma política de posicionamento compacta, especifique o seguinte:

  • Para especificar que apenas VMs que visam especificamente essa reserva possam consumi-la, inclua o campo specificReservationRequired no corpo da solicitação e defina-o como true.

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations
    
    {
      "name": "example-reservation",
      "specificReservationRequired": true,
      ...
    }
    
  • Para permitir que o Compute Engine exclua automaticamente a reserva, selecione um dos seguintes métodos:

    • Para excluir a reserva em uma data e hora específicas, faça uma solicitação POST para o método beta.reservations.insert. No corpo da solicitação, inclua o campo deleteAtTime.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAtTime": "DELETE_AT_TIME",
        ...
      }
      

      Substitua DELETE_AT_TIME por uma data e hora formatadas como um carimbo de data/hora RFC 3339, que precisa ser o seguinte:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      Substitua:

      • YYYY-MM-DD: uma data formatada como um ano de quatro dígitos, um mês de dois dígitos e um dia de dois dígitos, separados por hífens (-).

      • HH:MM:SS: um horário formatado como uma hora de dois dígitos usando um horário de 24 horas, minutos de dois dígitos e segundos de dois dígitos, separados por dois pontos (:).

      • OFFSET: o fuso horário formatado como um ajuste de Tempo Universal Coordenado (UTC). Por exemplo, para usar o horário padrão do Pacífico (PST), especifique -08:00. Outra possibilidade é não usar ajuste: especifique Z.

    • Para excluir a reserva após uma duração específica, faça uma solicitação POST para o método beta.reservations.insert. No corpo da solicitação, inclua o campo deleteAfterDuration.

      POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/reservations
      
      {
        "name": "example-reservation",
        "deleteAfterDuration": {
          "seconds": "DELETE_AFTER_DURATION"
        },
        ...
      }
      

      Substitua DELETE_AFTER_DURATION por uma duração em segundos. Por exemplo, especifique 86400 para 86.400 segundos (1 dia).

Solução de problemas

Saiba como resolver problemas de criação de reserva.

A seguir