Use uma única solicitação da CLI do Google Cloud ou da API Compute Engine para atualizar várias propriedades de instância e reiniciar a instância, se necessário. O método de atualização processa a lógica para validar as propriedades da instância atualizada e garantir que os recursos necessários estejam disponíveis para concluir a atualização. Se a solicitação incluir propriedades inválidas ou se os recursos solicitados não estiverem disponíveis, a solicitação retornará um erro e não fará alterações na instância. Isso protege a instância contra atualizações parciais e impede que ela seja interrompida e não consiga acessar os recursos para ser reiniciada.
Antes de começar
-
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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- As solicitações de atualização de instância pela gcloud CLI ou
da API Compute Engine não são compatíveis com a semântica
PATCH
. O recurso de instância na solicitação de atualização deve incluir todas as propriedades da instância. As propriedades ausentes na configuração da instância na sua solicitação de atualização serão consideradas excluídas da instância. - É possível atualizar apenas uma lista específica de propriedades.
- Não é possível alterar instâncias de e para locatário individual.
- Você pode alterar uma instância de uma reserva para outra, mas não é possível anexar ou desanexar uma instância de uma reserva usando o processo de atualização.
- Se a instância tiver um SSD local anexado, não será possível atualizar as propriedades que exigem a reinicialização. Exclua e recrie a instância. Não se esqueça de migrar os dados importantes do SSD local para um disco permanente ou para outra VM antes de excluir a VM.
- Se uma instância usar recursos disponíveis apenas na API
Compute Engine Beta, você precisará usar a versão correta do
método
instances.update
para atualizar essas propriedades. Por exemplo, se você criar uma instância usando a API Compute Engine Beta e configurá-la com um recurso reconhecido apenas pela API Beta, também será necessário usar a versão Beta do métodoinstances.update
para atualizar esses recursos. A versão v1 do métodoinstances.update
não reconhece os recursos Beta que sua instância usa. Por isso, ela exclui esses recursos da configuração da instância durante o processo de atualização. Isso também se aplica aos recursos na versão Alfa da API. - A permissão
compute.instances.update
na instância que você quer atualizar. - A permissão
compute.disks.use
para um disco existente oucompute.disks.create
em um projeto em que você quer criar um novo disco. - Se possível, use a mesma versão da API Compute Engine de maneira consistente para criar, configurar e atualizar instâncias. Assim, você poderá atualizar e modificar qualquer recurso da instância se eles estiverem disponíveis apenas em uma versão da API.
- É possível usar o método
instances.update
para atualizar instâncias em um grupo de instâncias gerenciadas (MIG, na sigla em inglês). Entretanto, na maioria das situações, é melhor alterar o modelo de instância do grupo e reverter para o MIG. NO_EFFECT
: a solicitação de atualização verifica se a solicitação é válida e se os recursos estão disponíveis, mas não executa a atualização. Use-o para testar comandos sem iniciar atualizações reais.REFRESH
: a solicitação de atualização só será executada se as propriedades da instância modificada não exigirem a reinicialização da instância. A solicitação retorna um erroINFEASIBLE
se for válida, mas será necessário reiniciar.RESTART
: se a atualização exigir que a instância seja reiniciada, o sistema a reiniciará.disks
: discos de inicializaçãodisks.deviceName
: todos os discos
displayDevice
enableNestedVirtualization
guestAccelerators
machineType
minCpuPlatform
networkPerformanceConfig
performanceMonitoringUnit
reservationAffinity
resourcePolicies
scheduling
serviceAccounts
shieldedInstanceConfig
threadsPerCore
visibleCoreCount
canIpForward
deletionProtection
description
disks
: propriedades de disco que não são de inicialização, excetodeviceName
labels
metadata
nodeAffinities
tags
- Exporte as propriedades de configuração da instância atual.
- Modifique as propriedades de configuração da instância.
- Realize uma solicitação de teste especificando
NO_EFFECT
como a ação mais disruptiva. A resposta indica campos inválidos na configuração da instância e indica a ação necessária para aplicar as alterações. - Se a configuração for aceitável, solicite uma atualização da instância e especifique a ação mais disruptiva aceitável para esta atualização.
- Na sua solicitação, a propriedade
fingerprint
da instância deve corresponder aofingerprint
da instância que você está atualizando. Isso impede que solicitações de atualização simultâneas na mesma instância substituam umas às outras. - As propriedades da solicitação de atualização devem ser válidas.
- Os recursos solicitados devem estar disponíveis.
- Se as propriedades da solicitação exigirem que a instância reinicie,
ela precisará especificar
RESTART
como uma ação permitida. Use o comando
instances export
para exportar as propriedades da instância atual:gcloud compute instances export INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --destination=FILE_PATH
Substitua:
INSTANCE_NAME
: o nome da instância que você quer exportar;PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância.FILE_PATH
: o caminho de saída em que você quer salvar o arquivo de configuração da instância na estação de trabalho local.
Use um editor de texto para modificar uma ou mais propriedades no arquivo de configuração da instância exportada. Para saber quais propriedades é possível atualizar, consulte a lista de propriedades atualizáveis. Por exemplo, para alterar o tipo de máquina da instância, altere a propriedade
machineType
:⋮ machineType: https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE ⋮
Substitua:
PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância.MACHINE_TYPE
: o tipo de máquina da instância Por exemplo,n1-standard-2
.
Use o comando
instances update-from-file
para executar uma atualização de teste da instância de destino. Especifique a sinalização--most-disruptive-allowed-action=NO_EFFECT
. A resposta identifica propriedades configuradas incorretamente e indica se uma açãoRESTART
ouREFRESH
é necessária para realizar a atualização.gcloud compute instances update-from-file INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --source=FILE_PATH \ --most-disruptive-allowed-action NO_EFFECT
Substitua:
INSTANCE_NAME
: o nome da instância que você quer exportar;PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância.FILE_PATH
: o caminho para o arquivo de configuração da instância modificado na estação de trabalho local.
Use o comando
instances update-from-file
para atualizar a instância de destino. Se você estiver atualizando uma propriedade que requer a reinicialização da instância, inclua a sinalização--most-disruptive-allowed-action=RESTART
. Se as propriedades não exigirem reinicialização, especifique a sinalização--most-disruptive-allowed-action=REFRESH
. Para saber quais propriedades exigem reinicialização, consulte a lista de propriedades atualizáveis.gcloud compute instances update-from-file INSTANCE_NAME \ --project PROJECT_ID \ --zone ZONE \ --source=FILE_PATH \ --most-disruptive-allowed-action ALLOWED_ACTION
Substitua:
INSTANCE_NAME
: o nome da instância que você quer exportar;PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância.FILE_PATH
: o caminho para o arquivo de configuração da instância modificado na estação de trabalho local.ALLOWED_ACTION
: define o grau de disrupção da atualização. EspecifiqueRESTART
para permitir uma reinicialização completa da instância. EspecifiqueREFRESH
para atualizar a instância somente se as propriedades modificadas não exigirem a reinicialização dela.
Use o método
instances.get
na API Compute Engine para exportar as propriedades da instância existente:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Substitua:
PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância;INSTANCE_NAME
: o nome da instância que você quer exportar.
Essa solicitação retorna uma definição de recurso de instância.
Na resposta, modifique as propriedades dos recursos da instância. Para saber quais propriedades podem ser atualizadas, consulte a lista de propriedades atualizáveis. Por exemplo, para alterar o tipo de máquina da instância, altere a propriedade
machineType
. É possível alterar várias propriedades.{ ⋮ "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE", ⋮ }
Substitua:
PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância.MACHINE_TYPE
: o tipo de máquina da instância. Por exemplo,n1-standard-2
.
Use o método
instances.update
na API Compute Engine e especifiquemost_disruptive_allowed_action=NO_EFFECT
para executar uma atualização de teste da instância de destino. A resposta identifica propriedades configuradas incorretamente e indica se é necessário aplicar uma açãoRESTART
ouREFRESH
para realizar a atualização.PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?most_disruptive_allowed_action=NO_EFFECT { ⋮ "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n1-standard-2", ⋮ }
Substitua:
PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância.INSTANCE_NAME
: o nome da instância que você quer exportar.
Use o método
instances.update
na API Compute Engine para atualizar a instância de destino. Se você estiver atualizando uma propriedade que exige a reinicialização da instância, inclua o parâmetro de consulta?most_disruptive_allowed_action=RESTART
para indicar que a instância pode ser reiniciada durante a atualização. Se as propriedades não exigirem uma reinicialização, especifique o parâmetro de consulta?most_disruptive_allowed_action=REFRESH
. Para saber quais propriedades exigem reinicialização, consulte a lista de propriedades atualizáveis. Inclua o corpo completo do recurso da instância que você modificou. No exemplo a seguir, o corpo altera o tipo de máquina paran1-standard-2
:PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?most_disruptive_allowed_action=ALLOWED_ACTION { ⋮ "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n1-standard-2", ⋮ }
Substitua:
PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona desta instância.INSTANCE_NAME
: o nome da instância que você quer exportar.ALLOWED_ACTION
: define o grau de disrupção da atualização. EspecifiqueRESTART
para permitir uma reinicialização completa da instância. EspecifiqueREFRESH
para atualizar a instância somente se as propriedades modificadas não exigirem a reinicialização dela.
- Verifique o status da instância.
- Aprenda a reservar recursos em uma zona específica.
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.
Restrições
Permissões
É necessário ter a permissão
compute.instances.update
para atualizar instâncias. Essa permissão está incluída em vários papéis existentes de gerenciamento de identidade e acesso (IAM, na sigla em inglês). Você também precisa ter permissão para usar os recursos que quer modificar na instância. Por exemplo, para adicionar um disco a uma instância, é preciso ter as permissões a seguir:Práticas recomendadas
Para garantir que a interface de atualização da instância funcione com mais eficiência, use as seguintes práticas recomendadas:
Propriedades que podem ser atualizadas
É possível alterar apenas um conjunto específico de propriedades da instância por meio do método de atualização. Para atualizar algumas propriedades, é necessário reiniciar a instância. Para evitar reinicializações acidentais nas instâncias, a solicitação precisa definir qual ação tem permissão para ser executada. A solicitação pode especificar uma das seguintes ações:
Propriedades que exigem a atualização do
RESTART
:Propriedades que exigem a atualização apenas do
REFRESH
:Atualizar propriedades da instância
Atualize suas instâncias seguindo as seguintes etapas:
O sistema iniciará o processo de atualização apenas se sua solicitação atender aos requisitos a seguir:
Se os requisitos forem atendidos, o sistema iniciará o processo de atualização da instância. Caso contrário, o sistema não fará alterações na instância ou na configuração dela.
É possível iniciar atualizações usando a gcloud CLI ou a API Compute Engine.
gcloud
Se a solicitação de atualização for válida e os recursos necessários estiverem disponíveis, o processo de atualização da instância será iniciado. É possível monitorar o status da operação visualizando os registros de auditoria. Se a atualização exigir uma reinicialização e o comando permitir um
RESTART
, a instância será reiniciada para aplicar as alterações.REST
Se a solicitação de atualização for válida e os recursos necessários estiverem disponíveis, o processo de atualização da instância será iniciado. É possível monitorar o status da operação visualizando os registros de auditoria. Se a atualização exigir uma reinicialização e o comando permitir um
RESTART
, a instância será reiniciada para aplicar as alterações.A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-12-22 UTC.
-