Usar o Azure PowerShell 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 do Azure PowerShell. Para outras opções, consulte:
- Exportar modelo com a CLI do Azure
- Exportar modelo com o portal do Azure
- Exportação da API REST do grupo de recursos e exportação da API REST do histórico de implantação.
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, 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 o cmdlet Export-AzResourceGroup e forneça o nome do grupo de recursos.
Export-AzResourceGroup -ResourceGroupName demoGroup
Ele salva o modelo como um arquivo local.
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.
$resource = Get-AzResource `
-ResourceGroupName <resource-group-name> `
-ResourceName <resource-name> `
-ResourceType <resource-type>
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource $resource.ResourceId
Para exportar mais de um recurso, passe as IDs de recurso em uma matriz.
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource @($resource1.ResourceId, $resource2.ResourceId)
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 -SkipResourceNameParameterization
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 -IncludeParameterDefaultValue
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 cmdlet Save-AzResourceGroupDeploymentTemplate . 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.
Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment
O modelo é salvo como um arquivo local com o nome da implantação.
Para obter modelos implantados em outros níveis, use:
- Save-AzDeploymentTemplate para implantações em assinaturas
- Save-AzManagementGroupDeploymentTemplate para implantações em grupos de gerenciamento
- Save-AzTenantDeploymentTemplate para implantações para locatários
Próximos passos
- Saiba como exportar modelos com a CLI do Azure, o portal do Azure ou a API REST.
- Para aprender a sintaxe do modelo do Resource Manager, consulte Compreender a estrutura e a sintaxe dos modelos do Azure Resource Manager.
- Para saber como desenvolver modelos, consulte os tutoriais passo a passo.