Dela via


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 den 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 av resurserna kan inte distribueras förrän det finns en annan resurs. Till exempel kan du inte skapa den virtuella datorn förrän dess lagringskonto och nätverksgränssnitt finns. Du definierar den här relationen genom att göra en resurs beroende av de andra resurserna. Resource Manager utvärderar beroendena mellan resurser och distribuerar dem i beroende ordning. 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 någon Azure-prenumeration skapar du 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 slutföra den här artikeln behöver du:

  • Visual Studio Code med verktygstillägget för Resource Manager. Mer information finns i 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 du man openssl rand 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 också att du uppdaterar lösenordet 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. Från 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 Arkiv>Spara som för att spara en kopia av filen till 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 definieras 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. Dölj 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 för 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 den virtuella nätverksdefinitionen 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 beroenderelationerna 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. Starta om gränssnittet när du växlar.

    Skärmbild av Azure Portal Cloud Shell med alternativet för uppladdningsfil 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 använder du ls kommandot och cat kommandot för att kontrollera att filen har laddats upp.

  4. Om du vill distribuera mallen kör du följande PowerShell-skript.

    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 du inte längre behöver Azure-resurserna rensar du de resurser som du har distribuerat genom att ta bort resursgruppen.

  1. Från Azure-portalen väljer du Resursgrupp från 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 från menyn längst upp.

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: