Udostępnij za pośrednictwem


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.

  1. Zaloguj się do Azure portal.
  2. W menu po lewej stronie wybierz pozycję Grupy zasobów.
  3. Wybierz swoją grupę zasobów.
  4. 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.

  1. W Azure Portal wybierz pozycję Grupy zasobów z menu po lewej stronie.
  2. Wpisz nazwę grupy zasobów w polu tekstowym Filtruj dla dowolnego pola ... .
  3. Zaznacz pole wyboru obok pozycji myResourceGroup i wybierz pozycję myResourceGroup lub nazwę grupy zasobów.
  4. 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.