Armazenar e partilhar imagens numa Galeria de Computação do Azure

Aplica-se a: ✔️ VMs ✔️ Linux VMs ✔️ do Windows Conjuntos ✔️ de escala flexíveis Conjuntos de balanças uniformes

Uma imagem é uma cópia de uma VM completa (incluindo quaisquer discos de dados anexados) ou apenas do disco do SO, dependendo de como é criada. Quando você cria uma VM a partir da imagem, uma cópia dos VHDs na imagem é usada para criar os discos para a nova VM. A imagem permanece no armazenamento e pode ser usada repetidamente para criar novas VMs.

Se você tiver um grande número de imagens que precisa manter e quiser disponibilizá-las em toda a sua empresa, poderá usar uma Galeria de Computação do Azure como um repositório.

Quando você usa uma galeria para armazenar imagens, vários tipos de recursos são criados:

Recurso Description
Fonte da imagem Este é um recurso que pode ser usado para criar uma versão de imagem em uma galeria. Uma fonte de imagem pode ser uma VM do Azure existente que é generalizada ou especializada, uma imagem gerenciada, um instantâneo, um VHD ou uma versão de imagem em outra galeria.
Galeria Como o Azure Marketplace, uma galeria é um repositório para gerenciar e compartilhar imagens e outros recursos, mas você controla quem tem acesso.
Definição de imagem As definições de imagem são criadas dentro de uma galeria e carregam informações sobre a imagem e quaisquer requisitos para usá-la para criar VMs. Isso inclui se a imagem é Windows ou Linux, notas de versão e requisitos mínimos e máximos de memória. É uma definição de um tipo de imagem.
Versão da imagem Uma versão de imagem é o que você usa para criar uma VM ao usar uma galeria. Você pode ter várias versões de uma imagem conforme necessário para seu ambiente. Como uma imagem gerenciada, quando você usa uma versão de imagem para criar uma VM, a versão da imagem é usada para criar novos discos para a VM. As versões de imagem podem ser usadas várias vezes.

Gráfico mostrando como você pode ter várias versões de uma imagem em sua galeria

Definições de imagem

As definições de imagem são um agrupamento lógico para versões de uma imagem. A definição da imagem contém informações sobre o motivo pelo qual a imagem foi criada e também contém metadados da imagem, tais como, para que sistema operacional, recursos suportados e outras informações sobre o uso da imagem. Uma definição de imagem é como um plano para todos os detalhes em torno da criação de uma imagem específica. Você não implanta uma VM a partir de uma definição de imagem, mas das versões de imagem criadas a partir da definição.

Existem três parâmetros para cada definição de imagem que são usados em combinação - Publisher, Offer e SKU. Estes são usados para encontrar uma definição de imagem específica. Você pode ter definições de imagem que compartilham um ou dois, mas não todos os três valores. Por exemplo, aqui estão três definições de imagem e seus valores:

Definição da Imagem Publisher Oferecer Sku
myImage1 Contoso Finance Back-end
myImage2 Contoso Finance Front-end
myImage3 Testar Finance Front-end

Todos estes três têm conjuntos únicos de valores. O formato é semelhante à forma como atualmente pode especificar o editor, a oferta e a SKU para imagens do Azure Marketplace no Azure PowerShell para obter a versão mais recente de uma imagem do Marketplace. Cada definição de imagem precisa ter um conjunto exclusivo desses valores.

Os parâmetros a seguir determinam quais tipos de versões de imagem eles podem conter:

  • Estado do sistema operacional - Você pode definir o estado do sistema operacional como generalizado ou especializado. Este campo é obrigatório.
  • Sistema operacional - pode ser Windows ou Linux. Este campo é obrigatório.
  • Geração Hyper-V - especifique se a imagem foi criada a partir de um VHD Hyper-V de geração 1 ou 2 . O padrão é a geração 1.

As definições de imagem contêm metadados para a imagem para permitir o agrupamento de imagens que suportam os mesmos recursos, plano, estado do sistema operacional, tipo de sistema operacional e outros. A seguir estão outros parâmetros que podem ser definidos em sua definição de imagem para que você possa rastrear mais facilmente seus recursos:

  • Descrição - use a descrição para fornecer informações mais detalhadas sobre por que a definição de imagem existe. Por exemplo, você pode ter uma definição de imagem para seu servidor front-end que tenha o aplicativo pré-instalado.

  • EULA - pode ser usado para apontar para um contrato de licença de usuário final específico para a definição da imagem.

  • Declaração de Privacidade e Notas de versão - armazena notas de versão e declarações de privacidade no armazenamento do Azure e fornece um URI para acessá-las como parte da definição de imagem.

  • Data de fim de vida - estabeleça uma data padrão após a qual a imagem não deve ser usada, para todas as versões de imagem na definição da imagem. As datas de fim de vida são informativas; os usuários ainda poderão criar VMs a partir de imagens e versões após a data de fim de vida.

  • Tag - você pode adicionar tags ao criar sua definição de imagem. Para obter mais informações sobre tags, consulte Usando tags para organizar seus recursos

  • Recomendações mínimas e máximas de vCPU e memória - se a sua imagem tiver recomendações de vCPU e memória, pode anexar essa informação à sua definição de imagem.

  • Tipos de disco não permitidos - você pode fornecer informações sobre as necessidades de armazenamento para sua VM. Por exemplo, se a imagem não for adequada para discos HDD padrão, adicione-os à lista de não permitidos.

  • Informações do plano de compra para imagens do Marketplace - -PurchasePlanPublisher, -PurchasePlanNamee -PurchasePlanProduct. Para obter mais informações sobre o plano de compra, consulte Localizar imagens no Azure Marketplace e Fornecer informações do plano de compra do Azure Marketplace ao criar imagens.

  • Arquitetura

    • Arquitetura x64 ou ARM64
  • As funcionalidades permitem-lhe especificar funcionalidades adicionais e SecurityType(s) suportados(s) na imagem, com base no tipo de galeria:

    Funcionalidades Valores aceites Definição Suportado em
    IsHibernateSupported True, False Crie VMs com suporte para hibernação. Comunidade privada, compartilhada diretamente
    IsAcceleratedNetworkSupported True, False Crie VMs com rede acelerada habilitada. Quando definido como True Definição de imagem, a captura de VMs que não suportam rede acelerada não é suportada. Comunidade privada, compartilhada diretamente
    DiskControllerType ["SCSI", "NVMe"], ["SCSI"] Defina isso para usar o tipo de disco SCSI ou NVMe. VMs e discos NVMe só podem ser capturados em definições de imagem marcadas para suportar NVMe. Comunidade privada, compartilhada diretamente

    Quando você especifica um SecurityType usando o features parâmetro, ele limita os recursos de segurança habilitados na VM. Alguns tipos limitados, com base no tipo de galeria em que estão armazenados:

    Tipo de Segurança Definição Suportado em
    ConfidentialVMSupported É uma imagem Gen2 genérica que não contém o blob VMGS. A VM Gen2 ou a VM confidencial podem ser criadas a partir deste tipo de imagem Privado, Partilhado diretamente, Comunidade
    VM confidencial Somente VMs confidenciais podem ser criadas a partir desse tipo de imagem Privado
    TrustedLaunchSupported É uma imagem Gen2 genérica que não contém o blob VMGS. A VM Gen2 ou a VM TrustedLaunch podem ser criadas a partir desse tipo de imagem. Comunidade privada, compartilhada diretamente
    TrustedLaunch Somente a VM TrustedLaunch pode ser criada a partir desse tipo de imagem Privado
    TrustedLaunchAndConfidentialVmSupported É uma imagem Gen2 genérica que não contém o blob VMGS. Gen2 VM, TrustedLaunch VM ou uma ConfidentialVM podem ser criadas a partir desse tipo de imagem. Comunidade privada, compartilhada diretamente

    Para obter mais informações, consulte os exemplos da CLI para adicionar recursos de definição de imagem e SecurityType ou os exemplos do PowerShell.

    **ConfidentialVM só é suportado nas regiões onde está disponível, Você pode encontrar as regiões suportadas aqui.

Versões de imagem

Uma versão de imagem é o que você usa para criar uma VM. Você pode ter várias versões de uma imagem conforme necessário para seu ambiente. Quando você usa uma versão de imagem para criar uma VM, a versão da imagem é usada para criar novos discos para a VM. As versões de imagem podem ser usadas várias vezes.

As propriedades de uma versão de imagem são:

  • Número da versão. Este é usado como o nome da versão da imagem. Está sempre no formato: MajorVersion.MinorVersion.Patch. Quando você especifica usar o mais recente ao criar uma VM, a imagem mais recente é escolhida com base na versão majorVersion mais alta, depois em MinorVersion e depois em Patch.
  • Origem. A origem pode ser uma VM, disco gerenciado, instantâneo, imagem gerenciada ou outra versão de imagem.
  • Data de fim de vida. Indique a data de fim de vida da versão da imagem. As datas de fim de vida são informativas; os usuários ainda poderão criar VMs a partir de versões posteriores à data de fim de vida.

Imagens generalizadas e especializadas

Há dois estados do sistema operacional suportados pela Galeria de Computação do Azure. Normalmente, as imagens exigem que a VM usada para criar a imagem tenha sido generalizada antes de tirar a imagem. A generalização é um processo que remove informações específicas da máquina e do usuário da VM. Para Linux, você pode usar waagent-deprovision ou -deprovision+user parâmetros. Para Windows, a ferramenta Sysprep é usada.

VMs especializadas não passaram por um processo para remover informações e contas específicas da máquina. Além disso, as VMs criadas a partir de imagens especializadas não têm um osProfile associado a elas. Isso significa que imagens especializadas terão algumas limitações, além de alguns benefícios.

  • As VMs e os conjuntos de dimensionamento criados a partir de imagens especializadas podem estar ativos e funcionando mais rapidamente. Como elas são criadas a partir de uma fonte que já passou pela primeira inicialização, as VMs criadas a partir dessas imagens inicializam mais rapidamente.
  • As contas que podem ser usadas para fazer logon na VM também podem ser usadas em qualquer VM criada usando a imagem especializada criada a partir dessa VM.
  • As VMs terão o nome do computador da VM da qual a imagem foi retirada. Você deve alterar o nome do computador para evitar colisões.
  • É osProfile como algumas informações confidenciais são passadas para a VM, usando secretso . Isso pode causar problemas ao usar KeyVault, WinRM e outras funcionalidades que usam secrets no osProfile. Em alguns casos, você pode usar identidades de serviço gerenciado (MSI) para contornar essas limitações.

Atualizando recursos

Uma vez criado, você pode fazer algumas alterações nos recursos da galeria. Estas limitam-se a:

Galeria de Computação do Azure:

  • Description

Definição da imagem:

  • VCPUs recomendadas
  • Memória recomendada
  • Description
  • Data de fim de vida
  • Notas de versão

Versão da imagem:

  • Contagem de réplicas regionais
  • Regiões de destino
  • Excluir do mais recente
  • Data de fim de vida

Partilhar

Há três maneiras principais de compartilhar imagens na Galeria de Computação do Azure, dependendo de com quem você deseja compartilhar:

Partilhar com: Pessoas Grupos Principal de Serviço Todos os usuários em uma assinatura (ou) locatário específico Publicamente com todos os usuários no Azure
Compartilhamento RBAC Sim Sim Sim No Não
RBAC + Direct galeria compartilhada Sim Sim Sim Sim No
RBAC + Galeria da Comunidade Sim Sim Sim No Sim

Permissões RBAC necessárias para criar uma imagem ACG:

As imagens ACG podem ser criadas por usuários de várias fontes, incluindo máquinas virtuais, discos/instantâneos e VHDs. A seção descreve as várias permissões de usuário necessárias para criar uma imagem da Galeria de Computação do Azure. Identifica sem as permissões necessárias não será capaz de criar imagens ACG.

Source type Permissões necessárias
Máquina virtual Escrita
Disco/instantâneo Escrita
VHD Escrever (listKeys)
Imagem gerenciada Lida
Imagem de Galeria Lida

Consulte nossa documentação para obter informações adicionais sobre funções internas do Azure, para conceder permissões RBAC

Replicação superficial

Ao criar uma versão de imagem, você pode definir o modo de replicação como superficial para desenvolvimento e teste. A replicação superficial ignora a cópia da imagem, para que a versão da imagem fique pronta mais rapidamente. Mas, isso também significa que você não pode implantar um grande número de VMs a partir dessa versão de imagem. Isso é semelhante à maneira como as imagens gerenciadas mais antigas funcionavam.

A replicação superficial também pode ser útil se você tiver imagens grandes (até 32 TB) que não são implantadas com frequência. Como a imagem de origem não é copiada, discos maiores podem ser usados. Mas, eles também não podem ser usados para implantar um grande número de VMs simultaneamente.

Para definir uma imagem para replicação superficial, use --replication-mode Shallow com a CLI do Azure.

Suporte SDK

Os seguintes SDKs dão suporte à criação de Galerias de Computação do Azure:

Modelos

Você pode criar o recurso da Galeria de Computação do Azure usando modelos. Existem vários modelos de início rápido disponíveis:

Perguntas mais frequentes

Para listar todos os recursos da Galeria de Computação do Azure em assinaturas às quais você tem acesso no portal do Azure, siga as etapas abaixo:

  1. Abra o portal do Azure.
  2. Role a página para baixo e selecione Todos os recursos.
  3. Selecione todas as assinaturas nas quais você gostaria de listar todos os recursos.
  4. Procure recursos do tipo Galeria de Computação do Azure.

Para listar todos os recursos da Galeria de Computação do Azure, em assinaturas para as quais você tem permissões, use o seguinte comando na CLI do Azure:

   az account list -otsv --query "[].id" | xargs -n 1 az sig list --subscription

Sim. Existem 3 cenários com base nos tipos de imagens que você pode ter.

Cenário 1: Se você tiver uma imagem gerenciada, poderá criar uma definição de imagem e uma versão de imagem a partir dela. Para obter mais informações, consulte Criar e definição de imagem e uma versão de imagem.

Cenário 2: Se você tiver uma imagem não gerenciada, poderá criar uma imagem gerenciada a partir dela e, em seguida, criar uma definição de imagem e uma versão de imagem a partir dela.

Cenário 3: Se você tiver um VHD em seu sistema de arquivos local, precisará carregar o VHD para uma imagem gerenciada, então você pode criar uma definição de imagem e uma versão de imagem a partir dele.

Posso criar uma versão de imagem a partir de um disco especializado?

Sim, pode criar uma VM a partir de uma imagem especializada.

Não, não é possível mover o recurso de imagem da galeria para uma assinatura diferente. Você pode replicar as versões de imagem na galeria para outras regiões ou copiar uma imagem de outra galeria.

Posso replicar minhas versões de imagem em nuvens como o Azure operado pela 21Vianet ou o Azure Germany ou o Azure Government Cloud?

Não, não é possível replicar versões de imagem entre nuvens.

Posso replicar as minhas versões de imagem entre subscrições?

Não, você pode replicar as versões de imagem entre regiões em uma assinatura e usá-la em outras assinaturas por meio do RBAC.

Posso compartilhar versões de imagem entre locatários do Microsoft Entra?

Sim, você pode usar o RBAC para compartilhar com indivíduos entre locatários. Mas, para compartilhar em escala, consulte "Compartilhar imagens da galeria entre locatários do Azure" usando o PowerShell ou a CLI.

Quanto tempo leva para replicar versões de imagem nas regiões de destino?

O tempo de replicação da versão da imagem depende inteiramente do tamanho da imagem e do número de regiões para as quais ela está sendo replicada. No entanto, como prática recomendada, é recomendável manter a imagem pequena e as regiões de origem e de destino próximas para obter melhores resultados. Você pode verificar o status da replicação usando o sinalizador -ReplicationStatus.

Qual é a diferença entre região de origem e região de destino?

A região de origem é a região na qual a versão da imagem será criada, e as regiões de destino são as regiões nas quais uma cópia da versão da imagem será armazenada. Para cada versão da imagem, você só pode ter uma região de origem. Além disso, certifique-se de passar o local da região de origem como uma das regiões de destino ao criar uma versão de imagem.

Como posso especificar a região de origem ao criar a versão da imagem?

Ao criar uma versão de imagem, você pode usar o argumento --location na CLI e o parâmetro -Location no PowerShell para especificar a região de origem. Verifique se a imagem gerenciada que você está usando como imagem base para criar a versão da imagem está no mesmo local em que você pretende criar a versão da imagem. Além disso, certifique-se de passar o local da região de origem como uma das regiões de destino ao criar uma versão de imagem.

Como posso especificar o número de réplicas de versão de imagem a serem criadas em cada região?

Há duas maneiras de especificar o número de réplicas de versão de imagem a serem criadas em cada região:

  1. A contagem de réplicas regionais que especifica o número de réplicas que você deseja criar por região.
  2. A contagem de réplicas comum, que é a contagem padrão por região, caso a contagem de réplicas regionais não seja especificada.

Para especificar a contagem de réplicas regionais, passe o local junto com o número de réplicas que você deseja criar nessa região: "South Central US=2".

Se a contagem de réplicas regionais não for especificada com cada local, o número padrão de réplicas será a contagem de réplicas comum especificada.

Para especificar a contagem de réplicas comum na CLI do Azure, use o argumento --replica-count no az sig image-version create comando.

Sim, é possível. Mas, como prática recomendada, recomendamos que você mantenha o grupo de recursos, a galeria, a definição da imagem e a versão da imagem no mesmo local.

Não há cobranças pelo uso de uma Galeria de Computação do Azure, exceto as taxas de armazenamento para armazenar as versões de imagem e as cobranças de saída de rede para replicar as versões de imagem da região de origem para as regiões de destino.

Que versão da API devo usar ao criar imagens?

Para trabalhar com galerias, definições de imagem e versões de imagem, recomendamos que você use a versão da API 2018-06-01. O Armazenamento com Redundância de Zona (ZRS) requer a versão 2019-03-01 ou posterior.

Qual versão da API devo usar para criar uma VM ou um conjunto de escala de máquina virtual a partir da versão da imagem?

Para implantações de VM e Conjunto de Dimensionamento de Máquina Virtual usando uma versão de imagem, recomendamos que você use a versão da API 2018-04-01 ou superior.

Sim, você pode atualizar a referência de imagem do conjunto de escala de uma imagem gerenciada para uma imagem da Galeria de Computação do Azure, desde que o tipo de sistema operacional, a geração do Hyper-V e o layout do disco de dados correspondam entre as imagens.

Como posso atualizar meu código para usar a nova propriedade e garantir que as permissões sejam concedidas com precisão durante a criação da imagem da VM?

Para o campo ID da Máquina Virtual, use o campo VirtualMachineId em GallerySource(GalleryImageVersionStorageProfile.GallerySource.VirtualMachineID). A nova propriedade requer api-versão 2023-07-03 ou versão 1.4.0 (ou superior) do .NET SDK

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                GallerySource = new GalleryArtifactVersionFullSource()
                {
                    VirtualMachineId = new ResourceIdentifier(virtualMachineId),
                }
            },

Para VHD como origem, use o campo StorageAccountID em GallerySource em OSDiskImage ou Data disk Image (GalleryImageVersionStorageProfile.OSDiskImage.GallerySource.StorageAccountId). A nova propriedade requer api-versão 2022-03-03

StorageProfile = new GalleryImageVersionStorageProfile()
            {
                OSDiskImage = new GalleryOSDiskImage()
                {
                    GallerySource = new GalleryDiskImageSource()
                    {
                        StorageAccountId = new ResourceIdentifier(storageAccountId),
                        Uri = new Uri(blobUri),
                    }
                }
            },

Resolver problemas

Se você tiver problemas com a execução de quaisquer operações nos recursos da galeria, consulte a lista de erros comuns no guia de solução de problemas.

Além disso, você pode postar e marcar sua pergunta em azure-virtual-machines-imagesP&R.

Próximos passos

Saiba como implantar imagens usando a Galeria de Computação do Azure.