Samouczek: dodawanie funkcji szablonu do szablonu usługi ARM
Z tego samouczka dowiesz się, jak dodać funkcje szablonu do szablonu usługi Azure Resource Manager (szablon usługi ARM). Funkcje służą do dynamicznego konstruowania wartości. Oprócz tych funkcji szablonów dostarczanych przez system można również tworzyć funkcje zdefiniowane przez użytkownika. Ukończenie tego samouczka trwa 7 minut .
Wymagania wstępne
Zalecamy ukończenie samouczka dotyczącego parametrów, ale nie jest to wymagane.
Musisz mieć zainstalowany Visual Studio Code i pracować z rozszerzeniem Azure Resource Manager Tools oraz Azure PowerShell lub interfejsem wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz narzędzia szablonów.
Przeglądanie szablonu
Na końcu poprzedniego samouczka szablon miał następujący plik JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[parameters('storageName')]",
"location": "eastus",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Załóżmy, że zakodowano lokalizację konta usługi Azure Storage na eastus, ale musisz wdrożyć je w innym regionie. Musisz dodać parametr, aby dodać elastyczność do szablonu i zezwolić na jej inną lokalizację.
Korzystanie z funkcji
Jeśli ukończono samouczek dotyczący parametrów, użyto funkcji. Po dodaniu "[parameters('storageName')]"
parametrów użyto funkcji parameters . Nawiasy kwadratowe wskazują, że składnia wewnątrz nawiasów jest wyrażeniem szablonu. Resource Manager rozpoznaje składnię zamiast traktować ją jako wartość literału.
Funkcje umożliwiają dynamiczne pobieranie wartości podczas wdrażania do szablonu. W tym samouczku użyjesz funkcji , aby uzyskać lokalizację wdrożenia grupy zasobów.
Poniższy przykład wyróżnia zmiany w celu dodania parametru o nazwie location
. Wartość domyślna parametru wywołuje funkcję resourceGroup . Ta funkcja zwraca obiekt z informacjami o wdrożonej grupie zasobów. Jedną z właściwości obiektu jest właściwość location. Jeśli używasz wartości domyślnej, konto magazynu i grupa zasobów mają tę samą lokalizację. Zasoby w grupie mają różne lokalizacje.
Skopiuj cały plik i zastąp szablon jego zawartością.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[parameters('storageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Wdrażanie szablonu
W poprzednich samouczkach utworzono konto magazynu w regionie Wschodnie stany USA, ale grupa zasobów jest tworzona w regionie Środkowe stany USA. W tym samouczku utworzysz konto magazynu w tym samym regionie co grupa zasobów. Użyj wartości domyślnej dla lokalizacji, aby nie trzeba było podawać tej wartości parametru. Musisz podać nową nazwę konta magazynu, ponieważ tworzysz konto magazynu w innej lokalizacji. Użyj na przykład store2 jako prefiksu zamiast store1.
Jeśli grupa zasobów nie została utworzona, zobacz Tworzenie grupy zasobów. W przykładzie przyjęto założenie, że zmienna templateFile
została ustawiona na ścieżkę do pliku szablonu, jak pokazano w pierwszym samouczku.
New-AzResourceGroupDeployment `
-Name addlocationparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{new-unique-name}"
Uwaga
Jeśli wdrożenie zakończy się niepowodzeniem, użyj przełącznika verbose
, aby uzyskać informacje o tworzonych zasobach. Użyj przełącznika, debug
aby uzyskać więcej informacji na temat debugowania.
Weryfikowanie wdrożenia
Wdrożenie można zweryfikować, eksplorując grupę zasobów z Azure Portal.
- Zaloguj się do Azure portal.
- W menu po lewej stronie wybierz pozycję Grupy zasobów.
- Zaznacz pole wyboru po lewej stronie grupy myResourceGroup i wybierz pozycję myResourceGroup.
- Wybierz utworzoną grupę zasobów. Nazwa domyślna to myResourceGroup.
- Zwróć uwagę, że wdrożone konto magazynu i grupa zasobów mają tę samą lokalizację.
Czyszczenie zasobów
Jeśli przejdziesz do następnego samouczka, nie musisz usuwać grupy zasobów.
Jeśli zatrzymasz się teraz, możesz usunąć grupę zasobów.
- W Azure Portal wybierz pozycję Grupy zasobów z menu po lewej stronie.
- Wpisz nazwę grupy zasobów w polu tekstowym Filtruj dla dowolnego pola...
- Zaznacz pole wyboru obok pozycji myResourceGroup i wybierz pozycję myResourceGroup lub nazwę grupy zasobów.
- Wybierz pozycję Usuń grupę zasobów z górnego menu.
Następne kroki
W tym samouczku użyjesz funkcji, aby zdefiniować wartość domyślną parametru. W tej serii samouczków nadal używasz funkcji. Po zakończeniu serii dodajesz funkcje do każdej sekcji szablonu.