Substitua, remova ou elimine políticas de posicionamento

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

A substituição, a remoção ou a eliminação das políticas de posicionamento são úteis nos seguintes casos:

  • Substitua uma política de posicionamento numa 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 já não tiver interesse na respetiva posição relativa a outras VMs.

  • Elimine uma política de posicionamento quando já não precisar dela.

Antes de começar

  • Reveja as restrições das políticas de posicionamento.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS 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:

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    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 e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

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

Funções necessárias

Para receber as autorizações de que precisa para substituir, remover ou eliminar políticas de posicionamento, peça ao seu administrador para lhe conceder a função IAM Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1) no seu 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 substituir, remover ou eliminar políticas de posicionamento. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para substituir, remover ou eliminar políticas de posicionamento:

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

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

Substitua uma política de posicionamento numa VM

Antes de substituir uma política de posicionamento disperso numa VM por uma política de posicionamento compacto, certifique-se de que a VM usa um tipo de máquina e uma política de manutenção do anfitrião suportados. Se precisar de atualizar a VM antes de substituir a respetiva política de posicionamento, faça uma ou ambas as seguintes ações:

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

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

gcloud

  1. Crie um ficheiro YAML vazio.

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

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

    Substitua o seguinte:

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

    • FILE_PATH: o caminho para o ficheiro YAML que criou no passo anterior.

    • ZONE: a zona onde a VM está localizada.

  3. No ficheiro 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 o seguinte:

    • PROJECT_ID: o ID do projeto onde se encontra a política de posicionamento. Só pode especificar uma política de posicionamento que esteja localizada no mesmo projeto que a VM.

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

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

  4. Para atualizar a VM e reiniciá-la, 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 o seguinte:

    • VM_NAME: o nome da VM.

    • YAML_FILE: o caminho para o ficheiro YAML com os dados de configuração que modificou no passo anterior.

    • ZONE: a zona onde a VM está localizada.

REST

  1. Crie um ficheiro JSON vazio.

  2. Para ver as propriedades de uma VM existente, faça um pedido GET ao método instances.get.

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

    Substitua o seguinte:

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

    • ZONE: a zona onde a VM está localizada.

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

  3. No ficheiro JSON vazio que criou nos passos anteriores, faça o seguinte:

    1. Introduza as propriedades da VM a partir do resultado do pedido GET.

    2. Localize o campo resourcePolicies e, em seguida, edite o respetivo valor para especificar uma política de posicionamento diferente.

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

      Substitua o seguinte:

      • PROJECT_ID: o ID do projeto onde se encontra a política de posicionamento. Só pode especificar uma política de posicionamento que esteja localizada no mesmo projeto que a VM.

      • REGION: a região onde se encontra a política de posicionamento.

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

  4. Para atualizar a VM e reiniciá-la, faça um pedido PUT ao métodoinstances.update. Na solicitação, faça o seguinte:

    • No URL do pedido, inclua o parâmetro de consulta most_disruptive_allowed_action definido como RESTART.

    • Para o corpo do pedido, use os detalhes de configuração da VM do ficheiro JSON que criou e atualizou nos passos 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 a atualização das propriedades de uma MV, consulte o artigo Atualize as propriedades da MV.

Remova uma política de posicionamento de uma VM

Se quiser remover uma política de posicionamento disperso com dois ou mais domínios de disponibilidade de uma VM, pode fazê-lo sem parar a VM. Se quiser remover uma política de posicionamento compacta ou uma política de posicionamento dispersa com apenas um domínio de disponibilidade, tem de parar a VM antes de remover a política de posicionamento anexada à mesma.

A remoção de uma política de posicionamento de uma MV não afeta a respetiva localização física. No entanto, se a VM estiver a ser migrada em direto, o Compute Engine pode movê-la para uma localização física 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 o seguinte:

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

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

  • ZONE: a zona onde a VM está localizada.

REST

Para remover uma política de posicionamento de uma VM, faça um POST pedido 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 o seguinte:

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

  • ZONE: a zona onde a VM está localizada.

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

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

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

Elimine uma política de posicionamento

Só pode eliminar uma política de posicionamento se não estiver aplicada a nenhum recurso do Compute Engine. Caso contrário, a eliminação da política de posicionamento falha. Se quiser eliminar uma política de posicionamento aplicada a um ou mais recursos do Compute Engine, faça uma das seguintes ações:

  • Se a política for aplicada apenas a VMs e quiser manter as VMs, faça o seguinte:

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

    2. Elimine a política de posicionamento conforme descrito nesta secção.

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

    1. Opcional: Remova a política de posicionamento de qualquer MV que queira manter conforme descrito neste documento.

    2. Elimine todos os outros recursos do Compute Engine aos quais a política de posicionamento se aplica pela seguinte ordem:

      1. VMs

      2. Reservas

      3. Modelos de instâncias

    3. Elimine a política de posicionamento conforme descrito nesta secção.

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

gcloud

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

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

Substitua o seguinte:

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

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

REST

Para eliminar uma política de posicionamento, faça um pedido DELETE ao método resourcePolicies.delete.

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde se encontra a política de posicionamento.

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

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

O que se segue?