Tutorial: Hinzufügen von Vorlagenfunktionen zu Ihrer ARM-Vorlage
In diesem Tutorial wird beschrieben, wie Sie Ihrer ARM-Vorlage (Azure Resource Manager-Vorlage) Vorlagenfunktionen hinzufügen. Sie verwenden Funktionen, um dynamisch Werte zu erstellen. Zusätzlich zu diesen vom System bereitgestellten Vorlagenfunktionen können Sie auch benutzerdefinierte Funktionen (User-Defined Functions, UDFs) erstellen. Dieses Tutorial dauert ungefähr 7 Minuten.
Voraussetzungen
Wir empfehlen, das Tutorial zu Parametern durchzuführen. Dies ist jedoch keine Voraussetzung.
Visual Studio Code muss mit der Azure Resource Manager-Tools-Erweiterung installiert und funktionsfähig sein, und Sie benötigen entweder Azure PowerShell oder die Azure-Befehlszeilenschnittstelle (Azure CLI). Weitere Informationen finden Sie unter Vorlagentools.
Überprüfen der Vorlage
Am Ende des vorherigen Tutorials enthielt Ihre Vorlage die folgenden JSON-Datei:
{
"$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
}
}
]
}
Angenommen, Sie haben den Standort des Azure Storage-Kontos mit eastus (USA, Osten) hartcodiert, müssen es jedoch in einer anderen Region bereitstellen. Sie müssen einen Parameter hinzufügen, um Ihre Vorlage flexibler zu machen und andere Standorte zu ermöglichen.
Verwenden einer Funktion
Wenn Sie das Parametertutorial abgeschlossen haben, haben Sie eine Funktion verwendet. Beim Hinzufügen von "[parameters('storageName')]"
haben Sie die Funktion parameters verwendet. Die Klammern geben an, dass es sich bei der Syntax innerhalb der Klammern um einen Vorlagenausdruck handelt. Resource Manager löst die Syntax auf, anstatt sie als Literalwert zu behandeln.
Funktionen rufen während der Bereitstellung dynamisch Werte ab und erhöhen dadurch die Flexibilität Ihrer Vorlage. In diesem Tutorial verwenden Sie eine Funktion, um den Bereitstellungsstandort der Ressourcengruppe abzurufen.
Das folgende Beispiel zeigt die Änderungen, die Sie vornehmen, um einen Parameter namens location
hinzuzufügen. Der Standardwert des Parameters ruft die Funktion resourceGroup auf. Diese Funktion gibt ein Objekt mit Informationen zur bereitgestellten Ressourcengruppe zurück. Eine der Objekteigenschaften ist eine Standorteigenschaft. Wenn Sie den Standardwert verwenden, haben das Speicherkonto und die Ressourcengruppe denselben Standort. Die Ressourcen innerhalb einer Gruppe haben verschiedene Standorte.
Kopieren Sie die gesamte Datei, und ersetzen Sie Ihre Vorlage durch den Inhalt der Datei.
{
"$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
}
}
]
}
Bereitstellen der Vorlage
In den vorherigen Tutorials haben Sie ein Speicherkonto in der Region „USA, Osten“ erstellt, Ihre Ressourcengruppe wurde aber in „USA, Mitte“ erstellt. In diesem Tutorial wird Ihr Speicherkonto in der gleichen Region erstellt wie die Ressourcengruppe. Verwenden Sie den Standardwert für den Standort, damit Sie diesen Parameterwert nicht angeben müssen. Da Sie ein Speicherkonto an einem anderen Standort erstellen, müssen Sie einen neuen Namen für das Speicherkonto angeben. Verwenden Sie beispielsweise anstelle von store1 das Präfix store2.
Falls Sie die Ressourcengruppe noch nicht erstellt haben, folgen Sie den Anweisungen unter Erstellen einer Ressourcengruppe. Dieses Beispiel setzt voraus, dass Sie die Variable templateFile
wie im ersten Tutorial beschrieben auf den Pfad zur Vorlagendatei festgelegt haben.
New-AzResourceGroupDeployment `
-Name addlocationparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{new-unique-name}"
Hinweis
Wenn bei der Bereitstellung ein Fehler auftritt, verwenden Sie den Schalter verbose
, um Informationen zu den erstellten Ressourcen abzurufen. Verwenden Sie den Schalter debug
, um weitere Informationen zum Debuggen zu erhalten.
Überprüfen der Bereitstellung
Sie können die Bereitstellung überprüfen, indem Sie sich die Ressourcengruppe im Azure-Portal ansehen.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie im linken Menü Ressourcengruppen aus.
- Aktivieren Sie das Kontrollkästchen links von myResourceGroup und wählen Sie myResourceGroup aus.
- Wählen Sie die von Ihnen erstellte Ressourcengruppe aus. Der Standardname ist myResourceGroup.
- Beachten Sie, dass Ihr bereitgestelltes Speicherkonto und Ihre Ressourcengruppe denselben Standort haben.
Bereinigen von Ressourcen
Wenn Sie mit dem nächsten Tutorial fortfahren, müssen Sie die Ressourcengruppe nicht löschen.
Wenn Sie jetzt aufhören, sollten Sie die Ressourcengruppe löschen.
- Wählen Sie im Azure-Portal im linken Menü die Option Ressourcengruppen aus.
- Geben Sie den Ressourcengruppennamen im Textfeld Nach einem beliebigen Feld filtern ein.
- Aktivieren Sie das Kontrollkästchen neben myResourceGroup, und wählen Sie myResourceGroup oder Ihren Ressourcengruppennamen aus.
- Wählen Sie Ressourcengruppe löschen aus dem Menü ganz oben aus.
Nächste Schritte
In diesem Tutorial haben Sie den Standardwert für einen Parameter mithilfe einer Funktion definiert. In dieser Tutorialreihe verwenden Sie weiterhin Funktionen. Am Ende der Reihe fügen Sie jedem Abschnitt der Vorlage Funktionen hinzu.