Entender as especificações de modelo
Agora, você está acostumado a implantar modelos do Azure Resource Manager (modelo do ARM) no Azure usando Bicep ou JSON. Você cria um arquivo de modelo e, em seguida, o envia para o Azure criando uma implantação. O Azure Resource Manager orquestra a criação ou reconfiguração de seus recursos.
Ao trabalhar com especificações de modelo, você ainda envia o modelo para o Azure. Mas, em vez de implantá-lo, o Azure o salvará para que você use no futuro. Em seguida, você pode voltar mais tarde e dizer ao Azure para implantar a especificação de modelo. Você pode até mesmo usar a mesma especificação de modelo repetidamente para implantar mais ambientes.
Por que usar as especificações de modelo?
Em sua empresa de brinquedos, você criou muitos modelos reutilizáveis, incluindo:
Nome do modelo | Descrição |
---|---|
Conta de armazenamento | Implanta uma conta de armazenamento e impõe a autenticação do Microsoft Entra. |
Conta do Cosmos DB | Implanta uma conta do Azure Cosmos DB com backup contínuo habilitado. |
Rede virtual | Implanta uma rede virtual que tem a configuração certa para fazer o mesmo com a rede de hub principal. |
Site de lançamento do produto | Implanta um plano do Serviço de Aplicativo do Azure, aplicativo e conta de armazenamento para sites que apresentam lançamentos de produtos de novos brinquedos. |
As especificações de modelo são uma ótima maneira de criar uma biblioteca de modelos reutilizáveis do ARM para cenários comuns em sua organização. Um especialista pode criar um modelo com um recurso pré-configurado ou um conjunto de recursos. Esse especialista pode publicá-lo como uma especificação de modelo, permitindo que outras pessoas na organização a implantem.
Você pode usar especificações de modelo para garantir que os recursos que sua equipe cria sejam configurados de acordo com suas necessidades. Por exemplo, você pode publicar uma especificação de modelo como o modelo de conta de armazenamento que descrevemos anteriormente. Em seguida, sempre que qualquer pessoa em sua organização implantar sua especificação de modelo, você poderá ter a certeza de que eles criaram uma conta de armazenamento com as configurações de autenticação corretas.
As especificações de modelo são armazenadas no Azure, portanto, você não precisa manter os arquivos de modelo compartilhados por conta própria. Você pode gerenciar quem pode usar e modificar suas especificações de modelo com os controles de acesso baseados em função do Azure. Sem especificações de modelo, você precisa escolher um local de armazenamento, como o Armazenamento do Microsoft Azure, para manter os arquivos de modelo. Você também precisa controlar o acesso por conta própria.
Como as especificações de modelo se comparam aos módulos Bicep?
Ao trabalhar com o Bicep, você pode criar módulos reutilizáveis para definir conjuntos de recursos em um único arquivo. As especificações de modelo e os módulos Bicep servem ambos para adicionar reutilização aos seus modelos, mas são otimizados para coisas diferentes:
- As especificações de modelo foram projetadas para serem implantadas como um modelo completo. Você pode implantar especificações de modelo usando o portal do Azure e ferramentas como a CLI do Azure e o Azure PowerShell. Os módulos Bicep devem ser combinados em uma implantação maior. No entanto, se você criar uma especificação de modelo, o Bicep também permitirá que você a use como um módulo, se desejar.
- As especificações de modelo fornecem recursos de controle de acesso e de controle de versão. Você precisa gerenciar as versões e a segurança do código Bicep por conta própria.
- As especificações de modelo são armazenadas no Azure como um recurso. Você precisa armazenar módulos Bicep em algum lugar que você controle, como um sistema de controle de versão, como o Git, ou seu sistema de arquivos.
- Os módulos Bicep retêm todo o código Bicep original, incluindo comentários, nomes simbólicos e espaço em branco. Quando você cria uma especificação de modelo usando o Bicep, seu código Bicep é convertido em JSON e algumas dessas informações são perdidas. Portanto, você também precisa manter o arquivo Bicep de origem em outro lugar.
Quando você está decidindo entre especificações de modelo e módulos Bicep, uma boa regra geral é: se o modelo for implantado como está em toda a sua organização, as especificações de modelo provavelmente serão uma boa medida. Mas se você tiver a probabilidade de reutilizar esse modelo em vários modelos pai, os módulos Bicep poderão atender melhor às suas necessidades.
Como funcionam as especificações de modelo
Uma especificação de modelo é um recurso do Azure, assim como uma conta de armazenamento ou uma máquina virtual. Ele deve ser criado em um grupo de recursos, embora o próprio modelo possa implantar recursos em uma assinatura, gerenciamento ou escopo de locatário.
Ao trabalhar com especificações de modelo, você cria dois recursos:
- A especificação de modelo é o recurso de contêiner. Ele contém uma ou várias versões.
- As versões de especificação de modelo contêm o modelo real a ser implantado.
Você trabalha com especificações e versões de modelo usando suas IDs de recurso. Este é um exemplo da ID de recurso para uma especificação de modelo:
/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS
Uma versão é um recurso filho da especificação de modelo. Ele tem uma ID do recurso como o exemplo a seguir:
/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0
Ao implantar uma especificação de modelo, você precisa especificar a ID do recurso da versão da especificação de modelo.
Veja a seguir uma ilustração do fluxo de trabalho que você segue ao usar especificações de modelo:
Você cria um modelo da maneira que está acostumado. Não há nada especial sobre um modelo que você cria para uma especificação de modelo. Você declara recursos, cria parâmetros e variáveis, usa funções e assim por diante.
Quando o modelo estiver pronto, você criará um recurso de especificação de modelo. Em seguida, você publica seu modelo na especificação de modelo como uma versão. As ferramentas usadas para criar especificações de modelo permitem que você execute estas etapas em uma única operação. Sua especificação de modelo é armazenada no Azure como um recurso, depois de publicada. Você pode exibi-lo, editá-lo e controlar o acesso a ele como qualquer outro recurso do Azure. Você pode publicar sua especificação de modelo do computador local ou de um pipeline de implantação.
Sempre que quiser implantar sua especificação de modelo, confira a ID de recurso da versão da especificação de modelo da implantação. Você pode implantá-lo em qualquer grupo de recursos ou até mesmo em outra assinatura ou escopo. O Azure lê a especificação de modelo e a usa como o modelo para a implantação.