Samouczek: tworzenie szablonów usługi ARM z zasobami zależnymi
Dowiedz się, jak utworzyć szablon usługi Azure Resource Manager (szablon usługi ARM) w celu wdrożenia wielu zasobów i skonfigurować kolejność wdrażania. Po utworzeniu szablonu należy wdrożyć go przy użyciu usługi Azure Cloud Shell w witrynie 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 inny zasób nie istnieje. Przykładowo nie można utworzyć maszyny wirtualnej, jeżeli nie istnieje konto magazynu i interfejs sieciowy. Tę relację definiuje się, tworząc jeden zasób zależny od innych zasobów. Usługa Resource Manager ocenia zależności między zasobami i wdraża je w odpowiedniej kolejnoś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
- Wdrażanie 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 Manage complex cloud deployments by using advanced ARM template features (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. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie szablonów usługi ARM za pomocą programu Visual Studio Code.
Aby zwiększyć bezpieczeństwo, użyj wygenerowanego hasła dla konta administratora maszyny wirtualnej. Za pomocą usługi Azure Cloud Shell możesz uruchomić następujące polecenie w programie PowerShell lub powłoce Bash:
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ż aktualizację 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 programie Visual Studio Code wybierz pozycję File (Plik)>Open File (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ę Plik>Zapisz jako, aby zapisać kopię pliku o nazwie azuredeploy.json na komputerze lokalnym.
Eksplorowanie szablonu
Podczas eksplorowania szablonu w tej sekcji spróbuj odpowiedzieć na następujące pytania:
- Ile zasobów platformy Azure jest 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 programu 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 dokumentacją szablonu.
Rozwiń drugi zasób. Typ zasobu to
Microsoft.Network/publicIPAddresses
. Porównaj definicję zasobu z dokumentacją szablonu.Rozwiń trzeci zasób. Typ zasobu to
Microsoft.Network/networkSecurityGroups
. Porównaj definicję zasobu z dokumentacją 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ą.
Wdrażanie szablonu
Zaloguj się do usługi Cloud Shell.
Wybierz preferowane środowisko, wybierając pozycję PowerShell lub Bash (dla interfejsu wiersza polecenia) w lewym górnym rogu. Uruchom ponownie powłokę po przełączeniu.
Wybierz pozycję Przekaż/pobierz pliki, a następnie wybierz pozycję Przekaż. Zobacz powyższy zrzut ekranu. Wybierz zapisany wcześniej plik. Po przekazaniu pliku użyj
ls
polecenia icat
polecenia , aby sprawdzić, czy plik został pomyślnie przekazany.Aby wdrożyć szablon, uruchom następujący skrypt programu PowerShell.
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
Połączenie RDP z maszyną wirtualną w celu sprawdzenia, czy maszyna wirtualna została pomyślnie utworzona.
Czyszczenie zasobów
Jeśli nie potrzebujesz już zasobów platformy Azure, wyczyść wdrożone zasoby, usuwając grupę zasobów.
- W witrynie 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/po wdrożeniu, zobacz: