Självstudie: Skapa ARM-mallar med beroende resurser

Lär dig hur du skapar en Azure Resource Manager-mall (ARM-mall) för att distribuera flera resurser och konfigurera distributionsordningen. När du har skapat mallen distribuerar du mallen med Hjälp av Azure Cloud Shell från Azure Portal.

I den här självstudien skapar du ett lagringskonto, en virtuell dator, ett virtuellt nätverk och några andra beroende resurser. Vissa resurser kan inte distribueras förrän en annan resurs finns. Till exempel kan du inte skapa den virtuella datorn förrän dess lagringskonto och nätverksgränssnitt finns. Du kan definiera den här relationen genom att göra en resurs beroende av de andra resurserna. Resource Manager utvärderar beroenden mellan resurser och distribuerar dem i beroendeordning. När resurserna inte är beroende av varandra distribuerar Resource Manager dem parallellt. Mer information finns på sidan om att definiera ordningen för distribution av resurser i ARM-mallar.

Diagram som visar distributionsordningen för beroende resurser i en Resource Manager mall.

Den här självstudien omfattar följande uppgifter:

  • Öppna en snabbstartsmall
  • Utforska mallen
  • Distribuera mallen

Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

En Learn-modul som omfattar resursberoenden finns i Hantera komplexa molndistributioner med hjälp av avancerade ARM-mallfunktioner.

Förutsättningar

För att kunna följa stegen i den här artikeln behöver du:

  • Visual Studio Code med tillägget Resource Manager Tools. Se Snabbstart: Skapa ARM-mallar med Visual Studio Code.

  • För att förbättra säkerheten bör du använda ett genererat lösenord för den virtuella datorns administratörskonto. Du kan använda Azure Cloud Shell för att köra följande kommando i PowerShell eller Bash:

    openssl rand -base64 32
    

    Om du vill veta mer kör man openssl rand du för att öppna den manuella sidan.

    Azure Key Vault är utformat för att skydda kryptografiska nycklar och andra hemligheter. Mer information finns i Självstudie: Integrera Azure Key Vault i distribution av ARM-mallar. Vi rekommenderar även att du uppdaterar ditt lösenord var tredje månad.

Öppna en snabbstartsmall

Azure Snabbstartsmallar är en lagringsplats för ARM-mallar. I stället för att skapa en mall från början får du en exempelmall som du anpassar. Den mall som används i den här självstudien heter Deploy a simple Windows VM (Distribuera en enkel virtuell Windows-dator).

  1. I Visual Studio Code väljer du Arkiv>Öppna fil.

  2. I Filnamn klistrar du in följande URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Välj Öppna för att öppna filen.

  4. Välj Spara>som för att spara en kopia av filen på den lokala datorn med namnet azuredeploy.json.

Utforska mallen

När du utforskar mallen i det här avsnittet kan du försöka besvara följande frågor:

  • Hur många Azure-resurser är definierade i den här mallen?
  • En av resurserna är ett Azure-lagringskonto. Ser definitionen ut som den som används i den senaste självstudien?
  • Kan du hitta mallreferenserna för de resurser som är definierade i mallen?
  • Kan du hitta resursernas beroenden?
  1. Komprimera elementen från Visual Studio Code tills du bara ser elementen på första nivån och elementen på den andra nivån i resources:

    Skärmbild av Visual Studio Code som visar en ARM-mall med komprimerade element.

    Det finns sex resurser som definieras av mallen:

  2. Expandera den första resursen. Det är ett lagringskonto. Jämför resursdefinitionen med mallreferensen.

    Skärmbild av Visual Studio Code som visar definitionen av lagringskontot i en ARM-mall.

  3. Expandera den andra resursen. Resurstypen är Microsoft.Network/publicIPAddresses. Jämför resursdefinitionen med mallreferensen.

    Skärmbild av Visual Studio Code som visar definitionen av den offentliga IP-adressen i en ARM-mall.

  4. Expandera den tredje resursen. Resurstypen är Microsoft.Network/networkSecurityGroups. Jämför resursdefinitionen med mallreferensen.

    Skärmbild av Visual Studio Code som visar definitionen av nätverkssäkerhetsgruppen i en ARM-mall.

  5. Expandera den fjärde resursen. Resurstypen är Microsoft.Network/virtualNetworks:

    Skärmbild av Visual Studio Code som visar definitionen av det virtuella nätverket med dependsOn-elementet i en ARM-mall.

    Med dependsOn elementet kan du definiera en resurs som beroende av en eller flera resurser. Den här resursen är beroende av en annan resurs:

    • Microsoft.Network/networkSecurityGroups
  6. Expandera den femte resursen. Resurstypen är Microsoft.Network/networkInterfaces. Resursen beror på två resurser:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. Expandera den sjätte resursen. Den här resursen är en virtuell dator. Den beror på två resurser:

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

Följande diagram illustrerar resurserna och beroendeinformation för den här mallen:

Diagram som visar beroenderelationer mellan resurser i en ARM-mall som visas i Visual Studio Code.

Genom att ange beroendena distribuerar Resource Manager effektivt lösningen. Den distribuerar lagringskontot, en offentlig IP-adress och ett virtuellt nätverk parallellt eftersom de inte har några beroenden. När den offentliga IP-adressen och det virtuella nätverket har distribuerats skapas ett nätverksgränssnitt. När alla andra resurser har distribuerats så distribuerar Resource Manager den virtuella datorn.

Distribuera mallen

  1. Logga in på Cloud Shell.

  2. Välj önskad miljö genom att välja Antingen PowerShell eller Bash (för CLI) i det övre vänstra hörnet. Du måste starta om gränssnittet när du byter.

    Skärmbild av Azure Portal Cloud Shell med alternativet ladda upp fil markerat.

  3. Välj Ladda upp/ned filer och välj sedan Ladda upp. Se föregående skärmbild. Välj den fil som du sparade tidigare. När du har laddat upp filen kan du använda ls kommandot och cat kommandot för att kontrollera att filen har laddats upp.

  4. Kör följande PowerShell-skript för att distribuera mallen.

    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. RDP till den virtuella datorn för att verifiera att den virtuella datorn har skapats.

Rensa resurser

När Azure-resurserna inte längre behövs rensar du de resurser som du har distribuerat genom att ta bort resursgruppen.

  1. I Azure Portal väljer du Resursgrupp på den vänstra menyn.
  2. Ange resursgruppens namn i fältet Filtrera efter namn.
  3. Välj resursgruppens namn. Du ser totalt sex resurser i resursgruppen.
  4. Välj Ta bort resursgrupp på den översta menyn.

Nästa steg

I den här självstudien har du utvecklat och distribuerat en mall för att skapa en virtuell dator, ett virtuellt nätverk och de beroende resurserna. Information om hur du använder distributionsskript för att utföra åtgärder före/efter distribution finns i: