Substituir, remover ou excluir políticas de posicionamento


Este documento descreve como substituir, remover ou excluir políticas de posicionamento.

Substituir, remover ou excluir políticas de posicionamento é útil nos seguintes casos:

  • Substitua uma política de posicionamento em uma instância de máquina virtual (VM) para mover a VM para uma posição diferente em relação a outras VMs.

  • Remova uma política de posicionamento de uma VM quando não precisar mais da posição dela em relação a outras VMs.

  • Exclua uma política de posicionamento quando não precisar mais dela.

Antes de começar

  • Analise as restrições das políticas de posicionamento.
  • 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:

    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. 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 para substituir, remover ou excluir políticas de posicionamento, peça ao administrador para conceder a você o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) 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 substituir, remover ou excluir políticas de posicionamento. 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 substituir, remover ou excluir políticas de posicionamento:

  • Para substituir ou remover uma política de posicionamento de uma VM: compute.instances.update on the project
  • Para excluir uma política de posicionamento: compute.resourcePolicies.delete on the project

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

Substituir uma política de posicionamento em uma VM:

Antes de substituir uma política de posicionamento distribuído em uma VM por uma política de posicionamento compacto, verifique se a VM usa um tipo de máquina e uma política de manutenção de host com suporte. Se você precisar atualizar a VM antes de substituir a política de posicionamento dela, siga um ou ambos dos seguintes procedimentos:

Depois de substituir a política de posicionamento em uma VM, reinicie a VM para que a política de posicionamento recém-aplicada entre em vigor.

Para substituir uma política de posicionamento em uma VM, selecione uma das seguintes opções:

gcloud

  1. Crie um arquivo YAML vazio.

  2. Para exportar as propriedades de uma VM para o arquivo YAML que você acabou de criar, use o comando gcloud compute instances export.

    gcloud compute instances export VM_NAME \
        --destination=FILE_PATH \
        --zone=ZONE
    

    Substitua:

    • VM_NAME: o nome de uma VM atual que especifica uma política de posicionamento.

    • FILE_PATH: o caminho para o arquivo YAML que você criou na etapa anterior.

    • ZONE: a zona em que a VM está localizada.

  3. No arquivo de configuração YAML, edite o valor do campo resourcePolicies para especificar uma política de posicionamento diferente.

    resourcePolicies:
    - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME
    

    Substitua:

    • PROJECT_ID: o ID do projeto em que a política de posicionamento está. Só é possível especificar uma política de posicionamento que está no mesmo projeto que a VM.

    • REGION: a região em que a política de posicionamento está localizada.

    • POLICY_NAME: o nome da política de posicionamento.

  4. Para atualizar e reiniciar a VM, use o comando gcloud compute instances update-from-file com a flag --most-disruptive-allowed-action definida como RESTART.

    gcloud compute instances update-from-file VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Substitua:

    • VM_NAME: o nome da VM.

    • YAML_FILE: o caminho para o arquivo YAML com os dados de configuração que você modificou na etapa anterior.

    • ZONE: a zona em que a VM está localizada.

REST

  1. Crie um arquivo JSON vazio.

  2. Para exportar as propriedades de uma VM atual, faça uma solicitação GET para o método instances.get.

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

    Substitua:

    • PROJECT_ID: o ID do projeto em que a VM está localizada.

    • ZONE: a zona em que a VM está localizada.

    • VM_NAME: o nome de uma VM atual que especifica uma política de posicionamento.

  3. No arquivo JSON vazio que você criou nas etapas anteriores, faça o seguinte:

    1. Insira as propriedades da VM fornecidas na saída da solicitação GET.

    2. Localize o campo resourcePolicies e edite o valor dele para especificar uma política de posicionamento diferente.

      "resourcePolicies": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
      

      Substitua:

      • PROJECT_ID: o ID do projeto em que a política de posicionamento está. Só é possível especificar uma política de posicionamento que está no mesmo projeto que a VM.

      • REGION: a região em que a política de posicionamento está.

      • POLICY_NAME: o nome da política de posicionamento.

  4. Para atualizar e reiniciar a VM, faça uma solicitação PUT ao método instances.update. Na solicitação, faça o seguinte:

    • No URL da solicitação, inclua o parâmetro de consulta most_disruptive_allowed_action definido como RESTART.

    • Para o corpo da solicitação, use os detalhes de configuração da VM fornecidos no arquivo JSON que foi criado e atualizado nas etapas anteriores.

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART
    
    {
      ...
      "resourcePolicies": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ],
      ...
    }
    

Para mais informações sobre como atualizar as propriedades de uma VM, consulte Atualizar as propriedades da VM.

Remover uma política de posicionamento de uma VM

Se você quiser remover uma política de posicionamento distribuído com dois ou mais domínios de disponibilidade de uma VM, faça isso sem interromper a VM. Se você quiser remover uma política de posicionamento compacto ou distribuído com apenas um domínio de disponibilidade, primeiro interrompa a VM antes de remover a política de posicionamento anexada a ela.

A remoção de uma política de posicionamento de uma VM não afeta a localização física dela. No entanto, se a VM estiver sendo migrada em tempo real, o Compute Engine poderá movê-la para um local físico diferente.

Para remover uma política de posicionamento de uma VM, selecione uma das seguintes opções:

gcloud

Para remover uma política de posicionamento de uma VM, use o comando gcloud compute instances remove-resource-policies.

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Substitua:

  • VM_NAME: o nome de uma VM atual que especifica uma política de posicionamento.

  • POLICY_NAME: o nome da política de posicionamento aplicada à VM. Para verificar o nome da política de posicionamento, confira os detalhes da VM e o valor do campo resourcePolicies.

  • ZONE: a zona em que a VM está localizada.

REST

Para remover uma política de posicionamento de uma VM, faça uma solicitação POST ao método instances.removeResourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/removeResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Substitua:

  • PROJECT_ID: o ID do projeto em que a VM está localizada.

  • ZONE: a zona em que a VM está localizada.

  • VM_NAME: o nome de uma VM atual que especifica uma política de posicionamento.

  • REGION: a região em que a política de posicionamento está localizada.

  • POLICY_NAME: o nome da política de posicionamento aplicada à VM. Para verificar o nome da política de posicionamento, confira os detalhes da VM e o valor do campo resourcePolicies.

Excluir uma política de posicionamento

Só é possível excluir uma política de posicionamento se ela não for aplicada a nenhum recurso do Compute Engine. Caso contrário, a exclusão da política de posicionamento falhará. Para excluir uma política de posicionamento aplicada a um ou mais recursos do Compute Engine, siga um destes procedimentos:

  • Se a política for aplicada apenas às VMs e você quiser mantê-las, faça o seguinte:

    1. Remova a política de posicionamento das VMs, conforme descrito neste documento.

    2. Exclua a política de posicionamento conforme descrito nesta seção.

  • Caso contrário, faça o seguinte:

    1. Opcional: remova a política de posicionamento de qualquer VM que você queira manter, conforme descrito neste documento.

    2. Exclua todos os outros recursos do Compute Engine aos quais a política de posicionamento é aplicada na seguinte ordem:

      1. VMs

      2. Reservas

      3. Modelos de instância

    3. Exclua a política de posicionamento conforme descrito nesta seção.

Para excluir uma política de posicionamento, selecione uma das seguintes opções:

gcloud

Para excluir uma política de convidado, use o comando gcloud compute resource-policies delete.

gcloud compute resource-policies delete POLICY_NAME \
    --region=REGION

Substitua:

  • POLICY_NAME: o nome de uma política de posicionamento existente.

  • REGION: a região em que a política de posicionamento está localizada.

REST

Para excluir uma política de posicionamento, faça uma solicitação DELETE ao método resourcePolicies.delete.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME

Substitua:

  • PROJECT_ID: o ID do projeto em que a política de posicionamento está.

  • REGION: a região em que a política de posicionamento está localizada.

  • POLICY_NAME: o nome de uma política de posicionamento existente.

A seguir