Utilizar a CLI do Azure para exportar um modelo

Para ajudar a criar modelos do Azure Resource Manager, pode exportar um modelo a partir de recursos existentes. O modelo exportado ajuda-o a compreender a sintaxe JSON e as propriedades que implementam os seus recursos. Para automatizar futuras implementações, comece com o modelo exportado e modifique-o para o seu cenário. O processo de exportação do modelo tenta criar um modelo utilizável. No entanto, a maioria dos modelos exportados requer algumas modificações antes de poderem ser utilizados para implementar recursos do Azure.

Resource Manager permite-lhe escolher um ou mais recursos para exportar para um modelo. Pode concentrar-se exatamente nos recursos de que precisa no modelo.

Este artigo mostra como exportar modelos através da CLI do Azure. Para outras opções, consulte:

Escolher a opção de exportação correta

Existem duas formas de exportar um modelo:

  • Exportar a partir de um grupo de recursos ou recurso. Esta opção gera um novo modelo a partir de recursos existentes. O modelo exportado é um "instantâneo" do estado atual do grupo de recursos. Pode exportar um grupo de recursos inteiro ou recursos específicos nesse grupo de recursos.

  • Guardar a partir do histórico. Esta opção obtém uma cópia exata de um modelo utilizado para implementação. Especifique a implementação a partir do histórico de implementações.

Consoante a opção que escolher, os modelos exportados têm qualidades diferentes.

A partir do grupo de recursos ou recurso Da história
O modelo é gerado automaticamente. É provável que queira melhorar o código antes de o implementar. O modelo é uma cópia exata da criada pelo autor do modelo. Está pronto para ser reimplementado sem quaisquer alterações.
O modelo é um instantâneo do estado atual dos recursos. Inclui quaisquer alterações manuais efetuadas após a implementação. O modelo só mostra o estado dos recursos no momento da implementação. As alterações manuais efetuadas após a implementação não são incluídas.
Pode selecionar os recursos de um grupo de recursos a exportar. Todos os recursos para uma implementação específica estão incluídos. Não pode escolher um subconjunto desses recursos nem adicionar recursos que foram adicionados num momento diferente.
O modelo inclui todas as propriedades dos recursos, incluindo algumas propriedades que normalmente não definiria durante a implementação. Poderá querer remover ou limpar estas propriedades antes de reutilizar o modelo. O modelo inclui apenas as propriedades necessárias para a implementação. O modelo é mais disperso e mais fácil de ler.
O modelo provavelmente não inclui todos os parâmetros de que precisa para reutilizar. A maioria dos valores de propriedade são hard-coded no modelo. Para reimplementar o modelo noutros ambientes, tem de adicionar parâmetros que aumentem a capacidade de configurar os recursos. Pode anular a seleção de Incluir parâmetros para que possa criar os seus próprios parâmetros. O modelo inclui parâmetros que facilitam a reimplementação em diferentes ambientes.

Exporte o modelo a partir de um grupo de recursos ou recurso, quando:

  • Tem de capturar as alterações aos recursos que foram efetuados após a implementação original.
  • Quer selecionar os recursos que são exportados.
  • Os recursos não foram criados com um modelo.

Exportar o modelo do histórico, quando:

  • Quer um modelo fácil de reutilizar.
  • Não precisa de incluir as alterações efetuadas após a implementação original.

Limitações

Não é garantido que a exportação tenha êxito. A exportação não é uma forma fiável de transformar recursos pré-existentes em modelos utilizáveis na produção. É melhor criar recursos do zero com o ficheiro Bicep escrito à mão, o modelo do ARM ou o terraform.

Ao exportar a partir de um grupo de recursos ou recurso, o modelo exportado é gerado a partir dos esquemas publicados para cada tipo de recurso. Ocasionalmente, o esquema não tem a versão mais recente para um tipo de recurso. Verifique o modelo exportado para se certificar de que inclui as propriedades de que precisa. Se necessário, edite o modelo exportado para utilizar a versão da API de que precisa.

Alguns parâmetros de palavra-passe podem estar em falta nos modelos exportados. Tem de verificar a referência do modelo e adicionar manualmente estes parâmetros antes de poder utilizar os modelos para implementar recursos.

A funcionalidade exportar modelo não suporta a exportação de recursos Azure Data Factory. Para saber como pode exportar recursos do Data Factory, veja Copiar ou clonar uma fábrica de dados no Azure Data Factory.

Para exportar recursos criados através do modelo de implementação clássica, tem de migrá-los para o modelo de implementação Resource Manager.

Se receber um aviso ao exportar um modelo que indica que um tipo de recurso não foi exportado, ainda pode detetar as propriedades desse recurso. Para obter as propriedades do recurso, veja referência de modelo. Também pode ver a API REST do Azure para o tipo de recurso.

Existe um limite de 200 recursos no grupo de recursos para o qual cria o modelo exportado. Se tentar exportar um grupo de recursos com mais de 200 recursos, é apresentada a mensagem Export template is not supported for resource groups more than 200 resources de erro.

Exportar modelo a partir de um grupo de recursos

Depois de configurar o grupo de recursos com êxito, pode exportar um modelo do Azure Resource Manager para o grupo de recursos.

Para exportar todos os recursos num grupo de recursos, utilize az group export e indique o nome do grupo de recursos.

az group export --name demoGroup

O script apresenta o modelo na consola do . Para guardar num ficheiro, utilize:

az group export --name demoGroup > exportedtemplate.json

Em vez de exportar todos os recursos no grupo de recursos, pode selecionar os recursos a exportar.

Para exportar um recurso, transmita esse ID de recurso.

storageAccountID=$(az resource show --resource-group demoGroup --name demostg --resource-type Microsoft.Storage/storageAccounts --query id --output tsv)
az group export --resource-group demoGroup --resource-ids $storageAccountID

Para exportar mais do que um recurso, transmita os IDs de recursos separados pelo espaço. Para exportar todos os recursos, não especifique este argumento ou forneça "*".

az group export --resource-group <resource-group-name> --resource-ids $storageAccountID1 $storageAccountID2

Ao exportar o modelo, pode especificar se os parâmetros são utilizados no modelo. Por predefinição, os parâmetros para nomes de recursos estão incluídos, mas não têm um valor predefinido.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "type": "String"
  }
}

Se utilizar o --skip-resource-name-params parâmetro ao exportar o modelo, os parâmetros para nomes de recursos não serão incluídos no modelo. Em vez disso, o nome do recurso é definido diretamente no recurso para o valor atual. Não pode personalizar o nome durante a implementação.

"resources": [
  {
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2022-09-01",
    "name": "demoHostPlan",
    ...
  }
]

Se utilizar o parâmetro ao --include-parameter-default-value exportar o modelo, o parâmetro do modelo inclui um valor predefinido definido para o valor atual. Pode utilizar esse valor predefinido ou substituir o valor predefinido ao transmitir um valor diferente.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "defaultValue": "demoHostPlan",
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "defaultValue": "webSite3bwt23ktvdo36",
    "type": "String"
  }
}

Guardar modelo do histórico de implementações

Pode guardar um modelo de uma implementação no histórico de implementações. O modelo que obtém é exatamente o que foi utilizado para a implementação.

Para obter um modelo de uma implementação de grupo de recursos, utilize o comando az deployment group export . Especifique o nome da implementação a obter. Para obter ajuda para obter o nome de uma implementação, veja Ver o histórico de implementações com o Azure Resource Manager.

az deployment group export --resource-group demoGroup --name demoDeployment

O modelo é apresentado na consola do . Para guardar o ficheiro, utilize:

az deployment group export --resource-group demoGroup --name demoDeployment > demoDeployment.json

Para implementar modelos noutros níveis, utilize:

Passos seguintes