Samouczek: Tworzenie szablonów usługi ARM przy użyciu zasobów zależnych

Dowiedz się, jak utworzyć szablon usługi Azure Resource Manager (szablon usługi ARM), aby wdrożyć wiele zasobów i skonfigurować kolejność wdrażania. Po utworzeniu szablonu należy wdrożyć szablon przy użyciu usługi Azure Cloud Shell z poziomu Azure Portal.

Instrukcje w tym samouczku pozwalają utworzyć konto magazynu, maszynę wirtualną, sieć wirtualną oraz niektóre inne zasoby zależne. Niektórych zasobów nie można wdrożyć, dopóki nie istnieje inny zasób. Przykładowo nie można utworzyć maszyny wirtualnej, jeżeli nie istnieje konto magazynu i interfejs sieciowy. Relację tę definiuje się, ustawiając jeden zasób jako zależny od innych zasobów. Usługa Resource Manager ocenia zależności pomiędzy zasobami i wdraża je w kolejności opartej na zależności. Gdy zasoby nie zależą od siebie nawzajem, usługa Resource Manager wdraża je równolegle. Aby uzyskać więcej informacji, zobacz Definiowanie kolejności wdrażania zasobów w szablonach usługi ARM.

Diagram przedstawiający kolejność wdrażania zasobów zależnych w szablonie Resource Manager.

Ten samouczek obejmuje następujące zadania:

  • Otwieranie szablonu szybkiego startu
  • Eksplorowanie szablonu
  • Wdrożenie szablonu

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Aby zapoznać się z modułem Learn obejmującym zależności zasobów, zobacz Zarządzanie złożonymi wdrożeniami w chmurze przy użyciu zaawansowanych funkcji szablonu usługi ARM.

Wymagania wstępne

Aby ukończyć pracę z tym artykułem, potrzebne są następujące zasoby:

Otwieranie szablonu szybkiego startu

Szablony szybkiego startu platformy Azure to repozytorium szablonów usługi ARM. Zamiast tworzyć szablon od podstaw, możesz znaleźć szablon przykładowy i zmodyfikować go. Szablon używany w tym samouczku nazywa się Wdrożenie prostej maszyny wirtualnej z systemem Windows.

  1. W Visual Studio Code wybierz pozycję Plik>Otwórz plik.

  2. W polu File name (Nazwa pliku) wklej następujący adres URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Wybierz pozycję Open (Otwórz), aby otworzyć plik.

  4. Wybierz pozycję Zapisz plik>jako , aby zapisać kopię pliku na komputerze lokalnym o nazwie azuredeploy.json.

Eksplorowanie szablonu

Podczas eksplorowania szablonu w tej sekcji spróbuj odpowiedzieć na następujące pytania:

  • Jak wiele zasobów platformy Azure zostało zdefiniowanych w tym szablonie?
  • Jednym z tych zasobów jest konto usługi Azure Storage. Czy definicja przypomina tę użytą w poprzednim samouczku?
  • Czy możesz znaleźć dokumentację szablonów dla zasobów zdefiniowanych w tym szablonie?
  • Czy możesz znaleźć zależności zasobów?
  1. Z poziomu Visual Studio Code zwiń elementy, aż zobaczysz tylko elementy pierwszego poziomu i elementy drugiego poziomu wewnątrz resourceselementu :

    Zrzut ekranu przedstawiający Visual Studio Code wyświetlania szablonu usługi ARM z zwiniętymi elementami.

    Szablon definiuje sześć zasobów:

  2. Rozwiń pierwszy zasób. Jest to konto magazynu. Porównaj definicję zasobu z odwołaniem do szablonu.

    Zrzut ekranu przedstawiający Visual Studio Code definicję konta magazynu w szablonie usługi ARM.

  3. Rozwiń drugi zasób. Typ zasobu to Microsoft.Network/publicIPAddresses. Porównaj definicję zasobu z odwołaniem do szablonu.

    Zrzut ekranu przedstawiający Visual Studio Code definicję publicznego adresu IP w szablonie usługi ARM.

  4. Rozwiń trzeci zasób. Typ zasobu to Microsoft.Network/networkSecurityGroups. Porównaj definicję zasobu z odwołaniem do szablonu.

    Zrzut ekranu przedstawiający Visual Studio Code definicję sieciowej grupy zabezpieczeń w szablonie usługi ARM.

  5. Rozwiń czwarty zasób. Typ zasobu to Microsoft.Network/virtualNetworks:

    Zrzut ekranu przedstawiający Visual Studio Code definicji sieci wirtualnej z elementem dependsOn w szablonie usługi ARM.

    Element dependsOn umożliwia zdefiniowanie jednego zasobu jako zależnego od jednego lub większej liczby zasobów. Ten zasób zależy od jednego innego zasobu:

    • Microsoft.Network/networkSecurityGroups
  6. Rozwiń piąty zasób. Typ zasobu to Microsoft.Network/networkInterfaces. Zasób zależy od dwóch innych zasobów:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. Rozwiń szósty zasób. Ten zasób to maszyna wirtualna. Zależy on od dwóch innych zasobów:

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

Na poniższym diagramie przedstawiono zasoby i informacje o zależności dla tego szablonu:

Diagram przedstawiający relacje zależności między zasobami w szablonie usługi ARM wyświetlanym w Visual Studio Code.

Poprzez określenie zależności usługa Resource Manager efektywnie wdraża rozwiązanie. Usługa wdraża równolegle konto magazynu, publiczny adres IP i sieć wirtualną, ponieważ nie mają zależności. Po wdrożeniu adresu IP i sieci wirtualnej zostanie utworzony interfejs sieciowy. Po wdrożeniu wszystkich innych zasobów usługa Resource Manager wdroży maszynę wirtualną.

Wdrożenie szablonu

  1. Zaloguj się do Cloud Shell.

  2. Wybierz preferowane środowisko, wybierając pozycję PowerShell lub Bash (dla interfejsu wiersza polecenia) w lewym górnym rogu. Po przełączeniu wymagane jest ponowne uruchomienie powłoki.

    Zrzut ekranu przedstawiający Azure Portal Cloud Shell z wyróżnioną opcją przekazywania pliku.

  3. Wybierz pozycję Przekaż/pobierz pliki, a następnie wybierz pozycję Przekaż. Zobacz poprzedni zrzut ekranu. Wybierz zapisany wcześniej plik. Po przekazaniu pliku możesz użyć ls polecenia i cat polecenia , aby sprawdzić, czy plik został przekazany pomyślnie.

  4. Uruchom następujący skrypt programu PowerShell, aby wdrożyć szablon.

    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. Nawiąż połączenie RDP z maszyną wirtualną, aby sprawdzić, czy została pomyślnie utworzona.

Czyszczenie zasobów

Gdy zasoby platformy Azure nie będą już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów.

  1. W Azure Portal wybierz pozycję Grupa zasobów z menu po lewej stronie.
  2. Wprowadź nazwę grupy zasobów w polu Filtruj według nazwy.
  3. Wybierz nazwę grupy zasobów. W grupie zasobów zostanie wyświetlonych łącznie sześć zasobów.
  4. Wybierz pozycję Usuń grupę zasobów z górnego menu.

Następne kroki

W tym samouczku utworzono i wdrożono szablon, aby utworzyć maszynę wirtualną, sieć wirtualną i zasoby zależne. Aby dowiedzieć się, jak używać skryptów wdrażania do wykonywania operacji przed wdrożeniem/po wdrożeniu, zobacz: