Configure recomendações de VMs inativas


Esta página descreve como ver e modificar a configuração das recomendações de VMs inativas. Pode querer modificar a configuração para aumentar o número de recomendações que recebe ou evitar a classificação incorreta de VMs com cargas de trabalho intencionalmente pequenas como VMs inativas.

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:

    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.

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

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

Preços

As recomendações configuráveis estão disponíveis sem custo financeiro. A utilização de recomendações para reduzir a utilização de recursos pode resultar em poupanças de custos.

Configure as suas recomendações

Para configurar as recomendações de VMs inativas, siga estes passos:

  1. Obtenha a configuração atual para receber o ficheiro JSON da configuração.
  2. Edite o ficheiro de configuração no formato JSON.
  3. Carregue o novo ficheiro de configuração para aplicar as alterações.

Obter a configuração atual

Pode obter a configuração atual para recomendações de VMs inativas para o seu projeto através da CLI do Google Cloud ou do REST.

gcloud

Para obter os parâmetros de configuração atuais, use o comando gcloud recommender recommender-config describe e use google.compute.instance.IdleResourceRecommender como o ID do recomendador:

gcloud recommender recommender-config describe google.compute.instance.IdleResourceRecommender \
  --project=PROJECT_ID \
  --location=ZONE

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • ZONE: a zona para a qual quer obter a configuração atual

Por exemplo:

gcloud recommender recommender-config describe google.compute.instance.IdleResourceRecommender \
  --project=my-project \
  --location=us-central1-c

O comando devolve a configuração do recomendador, incluindo o subcampo modificável params.observation_period.

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2021-02-03T04:41:15.330351Z"
}

REST

Para obter a configuração atual, use o método recommenders.getConfig e especifique google.compute.instance.IdleResourceRecommender como o ID do recomendador:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto para o qual quer obter a configuração do motor de recomendações.
  • ZONE: a zona que contém o seu projeto.

Na linha de comandos, execute o seguinte comando para obter a configuração do recomendador para um projeto:

PROJECT_ID=PROJECT_ID
ZONE=ZONE
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: ${PROJECT_ID}" \
https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

O comando devolve a configuração do recomendador, incluindo o subcampo que pode modificar: params.observation_period.

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\"",
  "updateTime": "2021-02-03T04:41:15.330351Z"
}

Atualize a configuração de um projeto

Para atualizar a configuração das recomendações de VMs inativas, modifique o valor de observation_period e carregue a nova configuração para o seu projeto.

Pode definir o período de observação para um valor entre 1 e 14 dias, usando uma string com o número total de segundos, seguido da letra s.

  • Para um período de observação de 1 dia, use "86400s".
  • Para um período de observação de 14 dias, use "1209600s".

Depois de carregar a nova configuração, esta demora aproximadamente 48 horas a entrar em vigor. Até lá, as recomendações geradas usam a configuração anterior.

gcloud

Para atualizar os parâmetros de configuração, use o comando gcloud recommender recommender-config update e use google.compute.instance.IdleResourceRecommender como o ID do recomendador:

gcloud recommender recommender-config update google.compute.instance.IdleResourceRecommender\
  --project=PROJECT_ID \
  --location=ZONE \
  --config-file=CONFIG_FILE_PATH \
  --etag=ETAG

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • ZONE: a zona para a qual quer obter a configuração atual
  • CONFIG_FILE_PATH: o caminho para o ficheiro JSON com a configuração atual
  • ETAG: o valor etag da configuração atual

No ficheiro de configuração, especifique apenas o objeto recommenderGenerationConfig com os parâmetros de configuração atualizados. Por exemplo, para especificar um período de observação de cinco dias, use o seguinte ficheiro de configuração:

{
  "params": {
    "observation_period": "432000s"
  }
}

Se o comando for bem-sucedido, devolve um corpo da resposta semelhante ao seguinte, que mostra a nova configuração com os parâmetros que acabou de modificar.

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "432000s"
    }
  },
  "etag": "\"1245f9435cd01ea8\"",
  "updateTime": "2021-02-03T05:00:05Z"
}

REST

Para atualizar a configuração, use o método recommenders.updateConfig e especifique google.compute.instance.IdleResourceRecommender como o ID do recomendador:

PATCH https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "1209600s"
    }
  },
  "etag": "\"2f3c9b65cda6a4ba\""
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto para o qual quer modificar a configuração do recomendador.
  • ZONE: a zona que contém o seu projeto.

Guarde o corpo do pedido num ficheiro, por exemplo, config.json. Em seguida, pode fazer referência ao ficheiro quando atualizar a configuração do recomendador para o seu projeto, usando um comando semelhante ao seguinte:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "x-goog-user-project: ${PROJECT_ID}" \
-d @config.json \
https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config

O comando POST devolve um corpo de resposta semelhante ao seguinte, mostrando a nova configuração com os parâmetros que acabou de modificar.

{
  "name": "projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/config",
  "recommenderGenerationConfig": {
    "params": {
      "observation_period": "432000s"
    }
  },
  "etag": "\"1245f9435cd01ea8\"",
  "updateTime": "2021-02-03T05:00:05Z"
}

O que se segue?