Ponowne używanie wyrażeń za pomocą zmiennych szablonu usługi Azure Resource Manager

Ukończone

W poprzednim scenariuszu postanowiono użyć wyrażenia składającego się z kilku funkcji szablonu usługi Azure Resource Manager (ARM) w celu utworzenia unikatowej nazwy dla konta usługi Azure Storage. Ta elastyczność gwarantuje, że wszyscy klienci będą mogli używać szablonu usługi ARM do swoich wdrożeń. Zauważ jednak, że dodanie tego wyrażenia w kilku miejscach jest problemem z konserwowaniem szablonu. Decydujesz się na użycie zmiennej dla wyrażenia nazwy konta magazynu, aby można było zdefiniować to wyrażenie w jednym miejscu i ponownie używać go w całym szablonie.

Co to jest zmienna szablonu usługi ARM?

Zmienna szablonu usługi ARM to konstrukcja, która przechowuje wartość do późniejszego użycia. Zmiennych najlepiej używać, gdy dana wartość musi być określona w kilku miejscach w szablonie. Wszędzie tam, gdzie w szablonie jest używana zmienna, usługa Resource Manager zastępuje ją rozpoznaną wartością.

Załóżmy na przykład, że wyrażenie definiuje wartość lokalizacji zasobu. Kilka zasobów zdefiniowanych w szablonie wymaga lokalizacji. Możesz utworzyć zmienną do przechowywania wyrażenia lokalizacji, a następnie użyć zmiennej wszędzie tam, gdzie jest wymagana lokalizacja.

Zalety korzystania ze zmiennych szablonu usługi ARM

Zmienne szablonu usługi ARM pozwalają napisać wyrażenie tylko raz, a następnie używać go w kilku miejscach. Ponadto wyrażenie obsługuje się w jednym miejscu, a szablon jest bardziej czytelny.

Jak używać zmiennych szablonu usługi ARM?

Zmienne szablonu usługi ARM są definiowane w sekcji variables: {} szablonu. Na przykład poniżej przedstawiono wyrażenie dla nazwy konta magazynu zdefiniowane w ramach poprzedniej lekcji. Teraz definiuje ono wartość zmiennej storageName.

"variables": {
  "storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},

Możesz używać tej zmiennej w szablonie wszędzie tam, gdzie potrzebna jest nazwa konta magazynu:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  }
]

Zalecenia dotyczące zmiennych szablonu usługi ARM

Zmienne szablonu wprowadza się w notacji CamelCase (z wyrazami pisanymi wielkimi literami bez odstępów). Najlepiej nadają się one do reprezentowania wartości, które należy określić więcej niż raz, zwłaszcza jeśli dana wartość jest wyrażeniem złożonym.

Nie należy używać funkcji reference w sekcji zmiennych szablonu. Funkcja reference jest rozpoznawana w czasie wykonywania, a zmienne są rozpoznawane podczas analizowania szablonu. Nie należy również używać zmiennych dla parametru apiVersion w zasobie. Wersja interfejsu API określa schemat zasobu i często nie można zmienić wersji bez zmiany właściwości zasobu.