Tutorial: Criar modelos do ARM com recursos dependentes

Saiba como criar um modelo do Azure Resource Manager (modelo arm) para implementar vários recursos e configurar a ordem de implementação. Depois de criar o modelo, implemente o modelo com o Azure Cloud Shell a partir do portal do Azure.

Neste tutorial, vai criar uma conta de armazenamento, uma máquina virtual, uma rede virtual e mais alguns recursos dependentes. Alguns dos recursos não podem ser implementados enquanto existir outro recurso. Por exemplo, não é possível criar a máquina virtual enquanto as respetivas conta de armazenamento e interface de rede existirem. Defina esta relação fazendo com que um recurso seja dependente dos outros recursos. O Resource Manager avalia as dependências entre os recursos e implementa-os por ordem dependente. Quando os recursos não são dependentes entre si, o Resource Manager implementa-os em paralelo. Para obter mais informações, veja Definir a ordem para implementar recursos nos modelos do ARM.

Diagrama que mostra a ordem de implementação de recursos dependentes num modelo de Resource Manager.

Este tutorial abrange as seguintes tarefas:

  • Abrir um modelo de Início Rápido
  • Explorar o modelo
  • Implementar o modelo

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Para obter um módulo do Learn que abrange dependências de recursos, veja Gerir implementações de cloud complexas com funcionalidades avançadas de modelo do ARM.

Pré-requisitos

Para concluir este artigo, precisa de:

Abrir um modelo de Início Rápido

Os Modelos de Início Rápido do Azure são um repositório para modelos do ARM. Em vez de criar um modelo do zero, pode encontrar um modelo de exemplo e personalizá-lo. O modelo utilizado neste tutorial é denominado Implementar uma VM do Windows simples.

  1. No Visual Studio Code, selecione Ficheiro>Aberto Ficheiro.

  2. em Nome de ficheiro, cole o seguinte URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Selecione Abrir para abrir o ficheiro.

  4. Selecione Guardar Ficheiro>Como para guardar uma cópia do ficheiro no seu computador local com o nome azuredeploy.json.

Explorar o modelo

Ao explorar o modelo nesta secção, tente responder a estas perguntas:

  • Número de recursos do Azure definidos neste modelo?
  • Um dos recursos é uma conta de armazenamento do Azure. A definição aparenta ser como a utilizada no último tutorial?
  • Pode encontrar as referências de modelo para os recursos definidos neste modelo?
  • Pode encontrar as dependências dos recursos?
  1. No Visual Studio Code, feche os elementos até ver apenas os elementos de primeiro nível e os elementos de segundo nível dentro resourcesde :

    Captura de ecrã do Visual Studio Code a apresentar um modelo do ARM com elementos fechados.

    Existem seis recursos definidos pelo modelo:

  2. Expanda o primeiro recurso. É uma conta de armazenamento. Compare a definição de recurso com a referência do modelo.

    Captura de ecrã do Visual Studio Code a mostrar a definição da conta de armazenamento num modelo do ARM.

  3. Expanda o segundo recurso. O tipo de recurso é Microsoft.Network/publicIPAddresses. Compare a definição de recurso com a referência do modelo.

    Captura de ecrã a mostrar o Visual Studio Code a mostrar a definição de endereço IP público num modelo do ARM.

  4. Expanda o terceiro recurso. O tipo de recurso é Microsoft.Network/networkSecurityGroups. Compare a definição de recurso com a referência do modelo.

    Captura de ecrã do Visual Studio Code a mostrar a definição do grupo de segurança de rede num modelo do ARM.

  5. Expanda o quarto recurso. O tipo de recurso é Microsoft.Network/virtualNetworks:

    Captura de ecrã a mostrar o Visual Studio Code a mostrar a definição de rede virtual com o elemento dependsOn num modelo do ARM.

    O dependsOn elemento permite-lhe definir um recurso como dependente de um ou mais recursos. Este recurso depende de outro recurso:

    • Microsoft.Network/networkSecurityGroups
  6. Expanda o quinto recurso. O tipo de recurso é Microsoft.Network/networkInterfaces. O recurso depende de dois outros recursos:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. Expanda o sexto recurso. Este recurso é uma máquina virtual. Depende de dois outros recursos:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

O diagrama seguinte ilustra os recursos e as informações de dependência para este modelo:

Diagrama que mostra as relações de dependência entre recursos num modelo do ARM apresentado no Visual Studio Code.

Ao especificar as dependências, o Resource Manager implementa a solução de forma eficiente. Implementa a conta de armazenamento, o endereço IP público e a rede virtual em paralelo porque não têm dependências. Depois de o endereço IP público e a rede virtual serem implementados, a interface de rede é criada. Quando todos os outros recursos estiverem implementados, o Resource Manager implementa a máquina virtual.

Implementar o modelo

  1. Inicie sessão no Cloud Shell.

  2. Selecione o seu ambiente preferido ao selecionar PowerShell ou Bash (para CLI) no canto superior esquerdo. É necessário reiniciar o Shell quando mudar.

    Captura de ecrã a mostrar portal do Azure Cloud Shell com a opção carregar ficheiro realçada.

  3. Selecione Carregar/transferir ficheiros e, em seguida, selecione Carregar. Veja a captura de ecrã anterior. Selecione o ficheiro que guardou anteriormente. Depois de carregar o ficheiro, pode utilizar o ls comando e o cat comando para verificar se o ficheiro foi carregado com êxito.

  4. Execute o seguinte script do PowerShell para implementar o modelo.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. Faça o RDP à máquina virtual para verificar se a máquina virtual foi criada com êxito.

Limpar os recursos

Quando os recursos do Azure já não forem necessários, limpe os recursos implementados ao eliminar o grupo de recursos.

  1. No portal do Azure, selecione Grupo de recursos no menu esquerdo.
  2. Introduza o nome do grupo de recursos no campo Filtrar por nome.
  3. Selecione o nome do grupo de recursos. Verá um total de seis recursos no grupo de recursos.
  4. Selecione Eliminar grupo de recursos no menu superior.

Passos seguintes

Neste tutorial, desenvolveu e implementou um modelo para criar uma máquina virtual, uma rede virtual e os recursos dependentes. Para saber como utilizar scripts de implementação para realizar operações de pré/pós-implementação, veja: