Depois de criar uma imagem da máquina, pode usá-la para fazer cópias da instância de computação de origem. Para mais informações sobre as utilizações de imagens de máquinas, consulte o artigo quando usar uma imagem de máquina.
Uma imagem de máquina contém a maioria das informações e dados necessários para clonar uma instância.
Uma imagem de máquina não é alterável. No entanto, pode substituir quase todas as propriedades da imagem da máquina quando cria uma instância a partir da imagem da máquina.
Pode criar instâncias a partir de imagens de máquinas através da Google Cloud consola, da CLI Google Cloud ou da REST.
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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
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.
- 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.
Funções necessárias
Para receber as autorizações de que precisa para criar instâncias do Compute Engine a partir de imagens de máquinas, peça ao seu administrador para lhe conceder a função IAM Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) na instância de computação ou no 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.Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Restrições
Aplicam-se as seguintes restrições quando cria instâncias a partir de imagens da máquina:
Pode criar, no máximo, 6 instâncias a partir de uma imagem de máquina de origem em 60 minutos. Se exceder este limite, a operação de criação da instância falha e devolve um erro semelhante ao seguinte:
Operation rate exceeded for resource 'projects/test/global/machineImages/machine-image-1'. Too frequent operations from the source resource.
Para criar mais instâncias do que o limite definido (6 instâncias em 60 minutos), crie imagens da máquina adicionais a partir da instância de origem ou crie imagens da máquina de curta duração a partir das novas instâncias. Em seguida, pode criar o número necessário de instâncias a partir das novas imagens de máquinas.
Não pode criar instâncias a partir de imagens de máquinas com discos regionais anexados através da consola. Google Cloud Use a CLI Google Cloud ou a API REST e especifique os parâmetros
replicaZones
edeviceName
para cada disco regional anexado. Para mais informações, consulte o artigo Crie uma instância a partir de uma imagem de máquina com substituições de propriedades.
Crie uma instância a partir de uma imagem da máquina (sem substituição)
Se quiser criar uma instância totalmente baseada na imagem da máquina sem alterações às propriedades, use este método.
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
No menu
Criar VM a partir de…, selecione Imagens da máquina.Na janela Criar VM a partir de imagem da máquina apresentada, faça o seguinte:
Selecione uma imagem de máquina.
Para criar e iniciar a instância, clique em Criar.
gcloud
Use o comando
gcloud compute instances create
para criar uma instância a partir de uma imagem da máquina.gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --source-machine-image=SOURCE_MACHINE_IMAGE_NAME
Substitua o seguinte:
INSTANCE_NAME
: o nome da instânciaZONE
: a zona da instânciaSOURCE_MACHINE_IMAGE_NAME
: a imagem da máquina a partir da qual criar a instância
Exemplo
Por exemplo, pode usar o seguinte comando
gcloud
para criar uma instância denominadamy-instance
na zonaus-east1-b
a partir de uma imagem de máquina denominadamy-machine-image
.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image
Depois de criar a instância, o resultado é semelhante ao seguinte:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
REST
Na API, crie um pedido
POST
para o métodoinstances.insert
. No corpo do pedido, inclua os seguintes parâmetros:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Substitua o seguinte:
PROJECT_ID
: o seu ID do projeto.ZONE
: a zona da instância.INSTANCE_NAME
: um nome para a instância.SOURCE_MACHINE_IMAGE_URL
: o URL completo ou parcial da imagem da máquina que quer usar para criar a instância. Por exemplo, se tiver uma imagem de máquina denominadamy-machine-image
num projeto denominadomyProject
. Os seguintes URLs são válidos:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
Crie uma instância a partir de uma imagem da máquina com substituições de propriedades
Se quiser criar uma instância baseada principalmente na imagem da máquina, mas com algumas alterações, pode usar o comportamento de substituição. Para usar o comportamento de substituição, transmite atributos para substituir as propriedades da imagem da máquina existentes quando cria a instância.
Quando usar a funcionalidade de substituição, tenha em consideração as seguintes notas:
- Não pode substituir nenhuma propriedade do disco anexado, exceto o nome do disco, ao criar uma instância a partir da imagem da máquina.
Tem de especificar o parâmetro
replicaZones
para cada disco regional anexado, juntamente com odeviceName
do disco regional da imagem da máquina.Se a instância de origem (usada para gerar a imagem da máquina) e a nova instância pertencerem ao mesmo projeto e à mesma região, aplica-se o seguinte:
- A maioria das propriedades da instância de origem e da nova instância são iguais. As propriedades que diferem são, por exemplo, os endereços IP efémeros que são atribuídos automaticamente.
- Se a instância de origem ainda existir quando criar uma nova instância, a nova instância não pode usar o mesmo nome nem a mesma zona que a instância de origem.
Se a instância de origem usada para gerar a imagem da máquina e a nova instância pertencerem ao mesmo projeto, mas a regiões diferentes, aplica-se o seguinte:
- Tem de substituir todos os recursos zonais e regionais da nova instância. Por exemplo, se criar uma instância a partir de uma imagem de máquina cuja instância de origem pertencia a uma região diferente, tem de substituir os recursos regionais, como a sub-rede e as regras de firewall regionais. No entanto, os recursos globais, como os balanceadores de carga e as contas de serviço, não precisam de uma substituição, a menos que queira modificá-los.
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
No menu
Criar VM a partir de…, selecione Imagens da máquina.Na janela Criar VM a partir de imagem de máquina apresentada, selecione um modelo e, de seguida, clique em
Personalizar.Opcional: especifique outras opções de configuração. Para mais informações, consulte o artigo Opções de configuração durante a criação da instância.
Para criar e iniciar a instância, clique em Criar.
gcloud
Use o comando
gcloud compute instances create
para criar uma instância a partir de uma imagem da máquina e adicionar as propriedades que quer substituir.Por exemplo, pode usar o seguinte comando
gcloud
para criar uma VM denominadamy-instance
na zonaus-east1-b
a partir de uma imagem da máquina denominadamy-machine-image
. Neste exemplo, as substituições são aplicadas para alterar o tipo de máquina, parar a política de manutenção do anfitrião e configurar um disco persistente regional com o nomeregional-disk-0
.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image \ --machine-type=e2-standard-2 \ --maintenance-policy=TERMINATE \ --create-disk=device-name=boot-device-0,boot=true,auto-delete=true \ --create-disk=device-name=regional-disk-0,\ replica-zones=^:^us-east1-b:us-east1-c,boot=false
REST
Para substituir as propriedades da imagem da máquina durante a criação da instância, crie um pedido
POST
para o métodoinstances.insert
. No corpo do pedido, inclua o parâmetrosourceMachineImage
e quaisquer substituições de que necessite. Pode adicionar qualquer propriedade que normalmente definiria durante a criação de instâncias. Por exemplo, para substituir o tipo de máquina, a chamada API incluiria o parâmetromachineType
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/NEW_MACHINE_TYPE", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto.ZONE
: a zona da instância.INSTANCE_NAME
: um nome para a instância.NEW_MACHINE_TYPE
: o tipo de máquina que quer usar para a instância.SOURCE_MACHINE_IMAGE_URL
: o URL completo ou parcial da imagem da máquina que quer usar para criar a instância. Por exemplo, se tiver uma imagem de máquina denominadamy-machine-image
num projeto denominadomyProject
. Os seguintes URLs são válidos:https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
Comportamento de substituição
O comportamento de substituição na API Compute Engine segue as regras de patch de união JSON, descritas na RFC 7396. Em resumo, aplicam-se as seguintes regras:
- Se substituir um campo básico, o campo básico correspondente na imagem da máquina é substituído pelo valor do campo básico no pedido. Os campos básicos incluem parâmetros como
machineType
ename
. - Se substituir um campo repetido, todos os valores repetidos dessa propriedade são substituídos pelos valores correspondentes fornecidos no pedido.
Geralmente, os campos repetidos são propriedades do tipo
list
. Por exemplo,disks
enetworkInterfaces
são campos repetidos. - Se substituir um
nested object
, o objeto na imagem da máquina é unido à especificação do objeto correspondente no pedido. Tenha em atenção que, se um objeto aninhado estiver num campo repetido, o campo é tratado de acordo com as regras para campos repetidos. As etiquetas são uma exceção a esta regra e são tratadas como um campo repetido, mesmo que sejam do tipoobject
.
Por exemplo, se quiser criar uma VM a partir de uma imagem da máquina e criar discos regionais com a VM, use uma substituição para os discos para poder especificar a opção
replicaZones
. Uma vez que o campodisks
é um campo repetido, tem de especificar a configuração do disco para todos os discos anexados e o disco de arranque, e não apenas os discos regionais.POST https://compute.googleapis.com/compute/v1/projects/my-proj/zones/us-west1-a/instances { "name": "vm-from-image", "sourceMachineImage": "global/machineImages/my-machine-image", "disks": [ { "kind": "compute#attachedDisks", "boot": true, "autoDelete": true, "deviceName": "boot-device", "initializeParams": { "sourceImage": "projects/my-proj/global/images/my-image", "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", } }, { "kind": "compute#attachedDisk", "boot": false, "autoDelete": true, "deviceName": "regional-device-0", "initializeParams": { "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", "replicaZones": [ "projects/my-proj/zones/us-west1-a", "projects/my-proj/zones/us-west1-c" ] } } ] }
Crie uma instância com uma imagem da máquina de um projeto diferente
Quando cria uma instância através de uma imagem da máquina de um projeto diferente, pode não ter acesso à conta de serviço anexada a esse projeto de origem. Se quiser criar uma instância a partir de uma imagem de máquina localizada num projeto diferente, tem de garantir que tem acesso à imagem de máquina e substituir a propriedade da conta de serviço na nova instância.
Se partilhar uma imagem de máquina entre projetos que usam uma rede de VPC partilhada, tem de especificar explicitamente os detalhes da VPC partilhada quando criar uma instância a partir da imagem de máquina. Por exemplo, quando cria uma instância num projeto que não é o projeto anfitrião, faculte os detalhes da VPC partilhada do projeto anfitrião através das flags
--network
,--subnet
ou--network-interface
.As secções seguintes descrevem como criar uma instância a partir de uma imagem da máquina localizada num projeto diferente através da Google Cloud CLI.
Conceder acesso à imagem da máquina armazenada num projeto diferente.
As autorizações podem ser concedidas no projeto de origem ou na imagem da máquina. Use o comando
gcloud compute machine-images add-iam-policy-binding
para conceder as autorizações na imagem da máquina.gcloud compute machine-images add-iam-policy-binding MACHINE_IMAGE_NAME \ --project=MACHINE_IMAGE_PROJECT \ --member='ACCOUNT_EMAIL' \ --role='roles/compute.admin'
Substitua o seguinte:
MACHINE_IMAGE_PROJECT
: o ID do projeto do projeto que contém a imagem da máquina de origem.MACHINE_IMAGE_NAME
: o nome da imagem da máquina à qual quer adicionar a associação de autorização.ACCOUNT_EMAIL
: o endereço de email doserviceAccount
ouuser
que está a criar a instância. Certifique-se de que o email está formatado para incluir o prefixo obrigatório. O prefixo tem de ser um dos seguintes:user:
especifique isto se o endereço de email estiver associado a uma conta de utilizador. Por exemplo,user:user@example.com
.serviceAccount:
especifique esta opção se o endereço de email estiver associado a uma conta de serviço. Por exemplo,serviceAccount:123456789000-compute@developer.gserviceaccount.com
.
Exemplo
Por exemplo, para adicionar uma associação
compute.admin
à imagem da máquina denominadamy-machine-image
ao email da conta de serviço123456789000-compute@developer.gserviceaccount.com
, use o seguinte comandogcloud CLI
:gcloud compute machine-images add-iam-policy-binding my-machine-image \ --project=machine-image-project \ --member='serviceAccount:123456789000-compute@developer.gserviceaccount.com' \ --role='roles/compute.admin'
Conceda ao utilizador que executa o comando
gcloud compute instances create
a função de utilizador da conta de serviço (roles/iam.serviceAccountUser
) na conta de serviço associada à imagem da máquina.Use o comando
gcloud compute instances create
para criar uma instância a partir de uma imagem da máquina.gcloud compute instances create INSTANCE_NAME \ --project=INSTANCE_PROJECT_ID \ --zone=ZONE \ --source-machine-image=projects/MACHINE_IMAGE_PROJECT/global/machineImages/MACHINE_IMAGE_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --subnet=SUBNET
Substitua o seguinte:
INSTANCE_PROJECT_ID
: o ID do projeto para o projeto no qual quer criar a instânciaINSTANCE_NAME
: um nome para a instânciaZONE
: a zona da instânciaMACHINE_IMAGE_PROJECT
: o ID do projeto do projeto onde a imagem da máquina está localizadaMACHINE_IMAGE_NAME
: a imagem da máquina a partir da qual criar a instânciaSERVICE_ACCOUNT_EMAIL
: o endereço de email da conta de serviço que quer anexar à sua instânciaSUBNET
: se a sub-rede e a instância estiverem no mesmo projeto, substitua SUBNET pelo nome de uma sub-rede que esteja na mesma região que a instânciaPara especificar uma sub-rede numa rede de VPC partilhada, substitua
SUBNET
por uma string no seguinte formato:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto do projeto anfitrião da VPC partilhadaREGION
: a região da sub-redeSUBNET_NAME
: o nome da sub-rede
Exemplo
Por exemplo, o comando seguinte cria uma VM denominada
my-instance
emvm-project
, na zonaus-east1-b
, a partir de uma imagem da máquina denominadamy-machine-image
.A flag
--service-account
especifica a conta de serviço que quer anexar à VM recém-criada. Se não fornecer este indicador, não é possível partilhar a conta de serviço de origem entre os dois projetos e a operação falha.gcloud compute instances create my-instance \ --project=vm-project \ --zone=us-east1-b \ --source-machine-image=projects/machine-image-project/global/machineImages/my-machine-image \ --service-account=000123456789-compute@developer.gserviceaccount.com
Depois de criar a VM, o resultado é semelhante ao seguinte:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
O que se segue?
- Saiba mais sobre as imagens de máquinas
- Saiba como criar instâncias do Compute Engine
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 2025-09-25 UTC.
-