Definir a versão da imagem em uma família de imagens


Use as famílias de imagens para simplificar o controle de versões de imagens. Adicione uma imagem a uma família para defini-la como a versão mais recente. Se o rollback para uma versão anterior da imagem for necessário, suspenda o uso da imagem mais recente da família.

Para ver as práticas recomendadas para trabalhar com famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

Outra opção possível é especificar o local de armazenamento da imagem usando o console do Google Cloud, o comando gcloud compute images create com a sinalização --storage-location ou o método images().insert.

Antes de começar

Definir a versão da imagem em uma família de imagens

Console

  1. No console do Google Cloud, acesse a página Criar uma imagem.

    Acessar "Criar uma imagem"

  2. Especifique o Nome da imagem. Por exemplo, image-v1.

  3. Especifique a Origem de onde você quer criar uma imagem. Pode ser um disco permanente, um snapshot, outra imagem ou um arquivo disk.raw no Cloud Storage.

  4. Se você está criando uma imagem de um disco anexado a uma VM em execução, consulte Manter a instância em execução para confirmar que quer criar a imagem durante a execução da VM. É possível preparar sua VM antes de criar a imagem.

  5. Na lista suspensa Com base na localização do disco de origem (padrão), especifique o local para armazenar a imagem. Por exemplo, especifique us para armazenar a imagem na multirregião us ou us-central1 para armazená-la na região us-central1. Se você não especificar, o Compute Engine armazenará a imagem na multirregião mais próxima do local de origem dela.

  6. Especifique a imagem Família da nova imagem. Por exemplo, adicione my-image-family para organizar a imagem como parte de uma família de imagens.

  7. Opcionalmente, especifique outras propriedades da imagem:

    • Descrição: uma descrição para a imagem personalizada.
    • Rótulo: um rótulo para agrupar recursos.
  8. Especifique a chave de criptografia. É possível escolher entre uma chave gerenciada pelo Google, uma chave do Cloud Key Management Service (Cloud KMS) ou uma chave de criptografia fornecida pelo cliente (CSEK, na sigla em inglês). Se nenhuma chave de criptografia for especificada, as imagens serão criptografadas usando uma chave gerenciada pelo Google.

  9. Clique em Criar para criar a imagem.

gcloud

gcloud compute images create image-v1 \
    --source-disk disk-1 \
    --source-disk-zone us-central1-f \
    --family my-image-family

A família de imagens aponta para image-v1. Adicione uma segunda imagem à família:

gcloud compute images create image-v2 \
    --source-disk disk-2 \
    --source-disk-zone us-central1-f \
    --family my-image-family

API

Faça uma solicitação POST ao método images().insert. Especifique a família de imagens no corpo da solicitação.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images

{
  "name": "image-v2",
  "sourceDisk": "/zones/us-central1-f/disks/disk-2",
  "family":"my-image-family",

}

A família de imagens aponta para image-v2 porque é a imagem mais recente adicionada à família.

gcloud

Execute o comando gcloud compute images describe-from-family para ver a que imagem uma família aponta.

Por exemplo:

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '8904691942610171306'
kind: compute#image
name: image-v2
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY

API

Faça uma solicitação GET ao método images().getFromFamily. Especifique a família de imagens no corpo da solicitação.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/family

{
  "resourceId":"my-image-family",

}

Se você determinar que precisa reverter a família de imagens para que ela não aponte mais para image-v2, suspenda o uso de image-v2. Desse modo, a família apontará novamente para image-v1.

gcloud compute images deprecate image-v2 \
    --state DEPRECATED \
    --replacement image-v1

Verifique se a família de imagens está apontando para image-v1.

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '2741732787056801255'
kind: compute#image
name: image-v1
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY