Samouczek: dodawanie zmiennych do szablonu usługi ARM
Z tego samouczka dowiesz się, jak dodać zmienną do szablonu usługi Azure Resource Manager (szablon usługi ARM). Zmienne upraszczają szablony. Umożliwiają one napisanie wyrażenia raz i ponowne użycie go w całym szablonie. Ukończenie tego samouczka trwa 7 minut .
Wymagania wstępne
Zalecamy ukończenie samouczka dotyczącego funkcji, ale nie jest to wymagane.
Musisz zainstalować 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 szablonu.
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"
]
},
"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
}
}
]
}
Nazwa konta usługi Azure Storage musi być unikatowa, aby można było łatwo tworzyć szablon usługi ARM. Jeśli zostały wykonane wcześniejsze samouczki z tej serii, jesteś zmęczony wymyślić unikatową nazwę. Ten problem można rozwiązać, dodając zmienną, która tworzy unikatową nazwę konta magazynu.
Używanie zmiennej
Poniższy przykład wyróżnia zmiany w celu dodania zmiennej do szablonu, która tworzy unikatową nazwę konta magazynu. 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": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"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]"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Zwróć uwagę, że zawiera zmienną o nazwie uniqueStorageName
. Ta zmienna używa czterech funkcji do utworzenia wartości ciągu.
Znasz już funkcję parameters , więc nie będziemy jej badać.
Znasz również funkcję resourceGroup . W takim przypadku właściwość zostanie pobrana id
zamiast location
właściwości , jak pokazano w poprzednim samouczku. Właściwość id
zwraca pełny identyfikator grupy zasobów, w tym identyfikator subskrypcji i nazwę grupy zasobów.
Funkcja uniqueString tworzy 13-znakową wartość skrótu. Przekazane parametry określają zwróconą wartość. W tym samouczku użyjesz identyfikatora grupy zasobów jako danych wejściowych dla wartości skrótu. Oznacza to, że można wdrożyć ten szablon w różnych grupach zasobów i uzyskać inną unikatową wartość ciągu. Ta sama wartość zostanie jednak pobrana, jeśli zostanie wdrożona w tej samej grupie zasobów.
Funkcja concat przyjmuje wartości i łączy je. Dla tej zmiennej pobiera ciąg z parametru i ciąg z uniqueString
funkcji i łączy je w jeden ciąg.
Parametr storagePrefix
umożliwia przekazanie prefiksu, który ułatwia identyfikowanie kont magazynu. Możesz utworzyć własną konwencję nazewnictwa, która ułatwia identyfikowanie kont magazynu po wdrożeniu z obszernej listy zasobów.
Na koniec zwróć uwagę, że nazwa konta magazynu jest teraz ustawiona na zmienną zamiast parametru.
Wdrażanie szablonu
Wdróżmy szablon. Wdrażanie tego szablonu jest łatwiejsze niż poprzednie szablony, ponieważ podajesz tylko prefiks nazwy konta magazynu.
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 addnamevariable `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
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.
- Wybierz swoją grupę zasobów.
- Zwróć uwagę, że nazwa wdrożonego konta magazynu jest przechowywana, a także ciąg losowych znaków.
Czyszczenie zasobów
Jeśli przejdziesz do następnego samouczka, nie musisz usuwać grupy zasobów.
Jeśli teraz zatrzymujesz, 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 dodasz zmienną, która tworzy unikatową nazwę konta magazynu. W następnym samouczku zostanie zwrócona wartość z wdrożonego konta magazynu.