Samouczek: Tworzenie wielu wystąpień zasobów przy użyciu szablonów usługi ARM
Dowiedz się, jak iterować w szablonie usługi Azure Resource Manager (szablon arm), aby utworzyć wiele wystąpień zasobu platformy Azure. W tym samouczku zmodyfikujesz szablon w celu utworzenia trzech wystąpień konta magazynu.
Ten samouczek obejmuje następujące zadania:
- Otwieranie szablonu szybkiego startu
- Edytowanie 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 kopiowanie 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.
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 przewodniku Szybki start ma nazwę Create a standard storage account (Tworzenie standardowego konta magazynu). Szablon definiuje zasób konta usługi Azure Storage.
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.storage/storage-account-create/azuredeploy.json
Wybierz pozycję Open (Otwórz), aby otworzyć plik.
W szablonie jest
Microsoft.Storage/storageAccounts
zdefiniowany zasób. Porównaj szablon z dokumentacją dotyczącą szablonów. Przed dostosowaniem szablonu warto zapoznać się z podstawowymi informacjami.Wybierz pozycję Zapisz plik>jako , aby zapisać plik jako plik azuredeploy.json na komputerze lokalnym.
Edytowanie szablonu
Istniejący szablon tworzy jedno konto magazynu. Możesz dostosować szablon, aby utworzyć trzy konta magazynu.
Z poziomu programu Visual Studio Code wprowadź następujące cztery zmiany:
Dodaj element
copy
do definicji zasobu konta magazynu. W elemeciecopy
należy określić liczbę iteracji i zmienną dla tej pętli. Wartość licznika musi być dodatnią liczbą całkowitą i nie może przekraczać 800."copy": { "name": "storageCopy", "count": 3 },
Funkcja
copyIndex()
zwraca bieżącą iterację w pętli. Jako prefiksu nazwy należy użyć indeksu. FunkcjacopyIndex()
rozpoczyna liczenie od zera. Aby zrównoważyć wartość indeksu, możesz przekazać wartość wcopyIndex()
funkcji. Na przykładcopyIndex(1)
."name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Usuń definicję parametru
storageAccountName
, ponieważ nie jest już używana.outputs
Usuń element. To już nie jest potrzebne.metadata
Usuń element.
Ukończony szablon wygląda następująco:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Premium_LRS",
"Premium_ZRS",
"Standard_GRS",
"Standard_GZRS",
"Standard_LRS",
"Standard_RAGRS",
"Standard_RAGZRS",
"Standard_ZRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the storage account."
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-06-01",
"name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"copy": {
"name": "storageCopy",
"count": 3
},
"properties": {}
}
]
}
Zapisz zmiany.
Aby uzyskać więcej informacji na temat tworzenia wielu wystąpień, zobacz Iteracja zasobów w szablonach usługi ARM
Wdrożenie szablonu
Zaloguj się do usługi Azure 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 plik, który został zapisany w poprzedniej sekcji. Po przekazaniu pliku możesz użyć
ls
polecenia icat
polecenia , aby sprawdzić, czy plik został przekazany pomyślnie.W Cloud Shell uruchom następujące polecenia. Wybierz kartę, aby wyświetlić kod programu PowerShell lub kod interfejsu wiersza polecenia.
echo "Enter a project name that is used to generate resource group name:" && read projectName && echo "Enter the location (i.e. centralus):" && read location && resourceGroupName="${projectName}rg" && az group create --name $resourceGroupName --location "$location" && az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json"
Po pomyślnym wdrożeniu szablonu można wyświetlić trzy konta magazynu utworzone w określonej grupie zasobów. Porównaj nazwy kont magazynu z definicją nazwy w szablonie.
echo "Enter a project name that is used to generate resource group name:" &&
read projectName &&
resourceGroupName="${projectName}rg" &&
az storage account list --resource-group $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Oczyszczanie 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 zobaczysz łącznie trzy zasoby.
- Wybierz pozycję Usuń grupę zasobów z górnego menu.
Następne kroki
W tym samouczku przedstawiono sposób tworzenia wielu wystąpień konta magazynu. W następnym samouczku utworzysz szablon z wieloma zasobami i wieloma typami zasobów. Niektóre zasoby zawierają zasoby zależne.