Partilhar via


Usar a CLI do Azure para exportar um modelo

Para ajudar na criação de modelos do Azure Resource Manager, você pode exportar um modelo de recursos existentes. O modelo exportado ajuda você a entender a sintaxe JSON e as propriedades que implantam seus recursos. Para automatizar implantações futuras, comece com o modelo exportado e modifique-o para seu cenário. O processo de modelo de exportação tenta criar um modelo utilizável. No entanto, a maioria dos modelos exportados requer algumas modificações antes de poderem ser usados para implantar recursos do Azure.

O Resource Manager permite que você escolha um ou mais recursos para exportar para um modelo. Você pode se concentrar exatamente nos recursos necessários no modelo.

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

Escolha a opção de exportação certa

Existem duas formas de exportar um modelo:

  • Exportar do 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. Você pode exportar um grupo de recursos inteiro ou recursos específicos dentro desse grupo de recursos.

  • Salve da história. Esta opção recupera uma cópia exata de um modelo usado para implantação. Você especifica a implantação a partir do histórico de implantação.

Dependendo da opção escolhida, os modelos exportados têm qualidades diferentes.

Do grupo de recursos ou recurso Da história
O modelo é gerado automaticamente. Você provavelmente vai querer melhorar o código antes de implantá-lo. Modelo é uma cópia exata do criado pelo autor do modelo. Ele está pronto para ser reimplantado sem alterações.
O modelo é um instantâneo do estado atual dos recursos. Ele inclui todas as alterações manuais feitas após a implantação. O modelo mostra apenas o estado dos recursos no momento da implantação. Quaisquer alterações manuais feitas após a implantação não serão incluídas.
Você pode selecionar quais recursos de um grupo de recursos devem ser exportados. Todos os recursos para uma implantação específica estão incluídos. Não é possível escolher um subconjunto desses recursos ou adicionar recursos que foram adicionados em um momento diferente.
O modelo inclui todas as propriedades dos recursos, incluindo algumas propriedades que você normalmente não definiria durante a implantação. Talvez você queira remover ou limpar essas propriedades antes de reutilizar o modelo. O modelo inclui apenas as propriedades necessárias para a implantação. O modelo é mais esparso e mais fácil de ler.
O modelo provavelmente não inclui todos os parâmetros necessários para reutilização. A maioria dos valores de propriedade são codificados no modelo. Para reimplantar o modelo em outros ambientes, você precisa adicionar parâmetros que aumentem a capacidade de configurar os recursos. Você pode desmarcar Incluir parâmetros para poder criar seus próprios parâmetros. O modelo inclui parâmetros que facilitam a reimplantação em diferentes ambientes.

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

  • Você precisa capturar alterações nos recursos que foram feitas após a implantação original.
  • Você deseja selecionar quais recursos serão exportados.
  • Os recursos não foram criados com um modelo.

Exporte o modelo do histórico, quando:

  • Você quer um modelo fácil de reutilizar.
  • Não é necessário incluir as alterações feitas após a implantação original.

Limitações

Não é garantido que a exportação seja bem-sucedida. A exportação não é uma maneira confiável de transformar recursos pré-existentes em modelos utilizáveis na produção. É melhor criar recursos do zero usando o arquivo Bicep escrito à mão, modelo ARM ou terraform.

Ao exportar 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 necessita. Se necessário, edite o modelo exportado para usar a versão da API necessária.

Alguns parâmetros de senha podem estar faltando nos modelos exportados. Você precisa verificar a referência do modelo e adicionar manualmente esses parâmetros antes de poder usar os modelos para implantar recursos.

O recurso de modelo de exportação não oferece suporte à exportação de recursos do Azure Data Factory. Para saber como exportar recursos do Data Factory, consulte Copiar ou clonar uma fábrica de dados no Azure Data Factory.

Para exportar recursos criados por meio do modelo de implantação clássico, você deve migrá-los para o modelo de implantação do Resource Manager.

Se você receber um aviso ao exportar um modelo que indique que um tipo de recurso não foi exportado, ainda poderá descobrir as propriedades desse recurso. Para propriedades do recurso, consulte referência de modelo. Você também pode examinar a API REST do Azure para o tipo de recurso.

Há um limite de 200 recursos no grupo de recursos para o qual você cria o modelo exportado. Se você tentar exportar um grupo de recursos que tenha mais de 200 recursos, a mensagem Export template is not supported for resource groups more than 200 resources de erro será mostrada.

Exportar modelo a partir de um grupo de recursos

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

Para exportar todos os recursos em um grupo de recursos, use az group export e forneça o nome do grupo de recursos.

az group export --name demoGroup

O script exibe o modelo no console. Para salvar em um arquivo, use:

az group export --name demoGroup > exportedtemplate.json

Em vez de exportar todos os recursos no grupo de recursos, você pode selecionar quais recursos exportar.

Para exportar um recurso, passe 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 de um recurso, passe as IDs de recurso separadas por espaço. Para exportar todos os recursos, não especifique este argumento nem forneça "*".

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

Ao exportar o modelo, você pode especificar se os parâmetros são usados no modelo. Por padrão, os parâmetros para nomes de recursos são incluídos, mas não têm um valor padrão.

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

Se você usar 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 seu valor atual. Não é possível personalizar o nome durante a implantação.

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

Se você usar o --include-parameter-default-value parâmetro ao exportar o modelo, o parâmetro template incluirá um valor padrão definido como o valor atual. Você pode usar esse valor padrão ou substituir o valor padrão passando um valor diferente.

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

Salvar modelo do histórico de implantação

Você pode salvar um modelo de uma implantação no histórico de implantação. O modelo que você obtém é exatamente o que foi usado para implantação.

Para obter um modelo de uma implantação de grupo de recursos, use o comando az deployment group export . Você especifica o nome da implantação a ser recuperada. Para obter ajuda sobre como obter o nome de uma implantação, consulte Exibir histórico de implantação com o Azure Resource Manager.

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

O modelo é exibido no console. Para salvar o arquivo, use:

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

Para obter modelos implantados em outros níveis, use:

Próximos passos