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.
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:
Program Visual Studio Code z rozszerzeniem Resource Manager Tools. Zobacz Szybki start: tworzenie szablonów usługi ARM przy użyciu Visual Studio Code.
Aby zwiększyć bezpieczeństwo, użyj wygenerowanego hasła dla konta administratora maszyny wirtualnej. Aby uruchomić następujące polecenie w programie PowerShell lub Bash, możesz użyć usługi Azure Cloud Shell:
openssl rand -base64 32
Aby dowiedzieć się więcej, uruchom polecenie
man openssl rand
, aby otworzyć stronę ręczną.Usługa Azure Key Vault została zaprojektowana w celu ochrony kluczy kryptograficznych i innych wpisów tajnych. Aby uzyskać więcej informacji, zobacz Samouczek: integrowanie usługi Azure Key Vault we wdrożeniu szablonu usługi ARM. Zalecamy również aktualizowanie hasła co trzy miesiące.
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.
W Visual Studio Code wybierz pozycję Plik>Otwórz plik.
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
Wybierz pozycję Open (Otwórz), aby otworzyć plik.
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?
Z poziomu Visual Studio Code zwiń elementy, aż zobaczysz tylko elementy pierwszego poziomu i elementy drugiego poziomu wewnątrz
resources
elementu :Szablon definiuje sześć zasobów:
Microsoft.Compute/virtualMachines.
Warto przejrzeć odwołanie do szablonu przed dostosowaniem szablonu.
Rozwiń pierwszy zasób. Jest to konto magazynu. Porównaj definicję zasobu z odwołaniem do szablonu.
Rozwiń drugi zasób. Typ zasobu to
Microsoft.Network/publicIPAddresses
. Porównaj definicję zasobu z odwołaniem do szablonu.Rozwiń trzeci zasób. Typ zasobu to
Microsoft.Network/networkSecurityGroups
. Porównaj definicję zasobu z odwołaniem do szablonu.Rozwiń czwarty zasób. Typ zasobu to
Microsoft.Network/virtualNetworks
: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
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
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:
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
Zaloguj się do Cloud Shell.
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.
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 icat
polecenia , aby sprawdzić, czy plik został przekazany pomyślnie.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
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.
- W Azure Portal wybierz pozycję Grupa zasobów z menu po lewej stronie.
- Wprowadź nazwę grupy zasobów w polu Filtruj według nazwy.
- Wybierz nazwę grupy zasobów. W grupie zasobów zostanie wyświetlonych łącznie sześć zasobów.
- 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: