Tutorial: Hinzufügen von Parametern zu Ihrer ARM-Vorlage
Im vorherigen Tutorial haben Sie erfahren, wie Sie ein Azure-Speicherkonto zur Vorlage hinzufügen und diese bereitstellen. In diesem Tutorial wird beschrieben, wie Sie die ARM-Vorlage (Azure Resource Manager-Vorlage) verbessern, indem Sie Parameter hinzufügen. Der Leitfaden dauert ungefähr 14 Minuten.
Voraussetzungen
Wir empfehlen, das Tutorial zu Ressourcen 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 enthält Ihre Vorlage die folgenden JSON-Datei:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "{provide-unique-name}",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Möglicherweise haben Sie bemerkt, dass es bei dieser Vorlage ein Problem gibt. Der Name des Speicherkontos ist hartcodiert. Sie können mit dieser Vorlage immer nur das gleiche Speicherkonto bereitstellen. Für die Bereitstellung eines Speicherkontos mit einem anderen Namen müssen Sie eine neue Vorlage erstellen, was natürlich nicht praktisch ist, wenn Sie Ihre Bereitstellungen automatisieren möchten.
Ermöglichen der Wiederverwendung einer Vorlage
Damit Ihre Vorlage wiederverwendet werden kann, fügen Sie einen Parameter hinzu, mit dem Sie einen Speicherkontonamen übergeben können. Die hervorgehobene JSON-Datei im folgenden Beispiel zeigt die Änderungen in der Vorlage. Der Parameter storageName
wird als Zeichenfolge identifiziert. Der Name des Speicherkontos ist in Kleinbuchstaben oder Zahlen und hat einen Grenzwert von 24 Zeichen.
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
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[parameters('storageName')]",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Bereitstellen der Vorlage
Nun stellen Sie die Vorlage bereit. Im folgenden Beispiel wird die Vorlage mit der Azure CLI oder PowerShell bereitgestellt. Dabei geben Sie den Namen des Speicherkontos als einen der Werte im Bereitstellungsbefehl an. Geben Sie für das Speicherkonto den Namen an, den Sie im vorherigen Tutorial verwendet haben.
Falls Sie die Ressourcengruppe noch nicht erstellt haben, folgen Sie den Anweisungen unter Erstellen einer Ressourcengruppe. In dem Beispiel wird vorausgesetzt, dass Sie die Variable templateFile
wie im ersten Tutorial beschrieben auf den Pfad zur Vorlagendatei festgelegt haben.
New-AzResourceGroupDeployment `
-Name addnameparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}"
Grundlegendes zu Ressourcenaktualisierungen
Nachdem Sie ein Speicherkonto mit demselben Namen bereitgestellt haben, den Sie zuvor verwendet haben, fragen Sie sich möglicherweise, wie sich die erneute Bereitstellung auf die Ressource auswirkt.
Wenn die Ressource bereits vorhanden ist und keine Änderung der Eigenschaften vorliegt, ist keine weitere Aktion erforderlich. Wenn die Ressource vorhanden ist und eine Eigenschaft geändert wird, wird diese aktualisiert. Wenn die Ressource nicht vorhanden ist, wird sie erstellt.
Da Aktualisierungen auf diese Weise verarbeitet werden, kann Ihre Vorlage alle Ressourcen enthalten, die Sie für eine Azure-Lösung benötigen. Sie können die Vorlage sicher neu bereitstellen und wissen, dass die Ressourcen nur bei Bedarf geändert oder erstellt werden. Wenn Sie beispielsweise Dateien zu Ihrem Speicherkonto hinzufügen, können Sie das Speicherkonto neu einrichten, ohne dass die Dateien verloren gehen.
Anpassen nach Umgebung
Mithilfe von Parametern können Sie die Bereitstellung anpassen, indem Sie Werte angeben, die auf eine bestimmte Umgebung zugeschnitten sind. Sie können zum Beispiel unterschiedliche Werte übergeben, je nachdem, ob Sie in einer Entwicklungs-, Test- oder Produktionsumgebung bereitstellen.
Die vorherige Vorlage stellt immer einen standardmäßigen lokal redundanten Speicher (LRS) Standard_LRS Konto bereit. Möglicherweise möchten Sie in der Lage sein, je nach Umgebung flexibel verschiedene Stock Keeping Units (SKUs) bereitzustellen. Das folgende Beispiel zeigt die Änderungen, die Sie zum Hinzufügen eines Parameters für die SKU vornehmen. Kopieren Sie die gesamte Datei, und überschreiben Sie damit Ihre Vorlage.
{
"$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
}
}
]
}
Der Parameter storageSKU
hat einen Standardwert. Verwenden Sie diesen Wert, wenn die Bereitstellung ihn nicht angibt. Außerdem verfügt er über eine Liste zulässiger Werte. Diese entsprechen den Werten, die zum Erstellen eines Speicherkontos erforderlich sind, Sie möchten, dass Ihre Benutzer von Vorlagen SKUs weitergeben, die funktionieren.
Erneutes Bereitstellen der Vorlage
Jetzt können Sie Ihre Vorlage erneut bereitstellen. Da die Standard-SKU auf Standard_LRS festgelegt ist, haben Sie bereits einen Parameterwert bereitgestellt.
New-AzResourceGroupDeployment `
-Name addskuparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-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.
Damit Sie sehen, wie flexibel Ihre Vorlage ist, stellen Sie diese nun nochmal bereit. Dieses Mal legen Sie den SKU-Parameter auf standard-georedundanter Speicher (GRS) Standard_GRS fest. Sie können entweder einen neuen Namen übergeben, um ein anderes Speicherkonto zu erstellen, oder den gleichen Namen verwenden, um Ihr vorhandenes Speicherkonto zu aktualisieren. Beide Optionen funktionieren.
New-AzResourceGroupDeployment `
-Name usenondefaultsku `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}" `
-storageSKU Standard_GRS
Zum Schluss überprüfen Sie mithilfe eines weiteren Tests, was passiert, wenn Sie eine SKU übergeben, die nicht in der Liste zulässiger Werte enthalten ist. In diesem Fall testen Sie das Szenario, in dem ein Benutzer Ihrer Vorlage glaubt, dass basic eine der zulässigen SKUs ist.
New-AzResourceGroupDeployment `
-Name testskuparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}" `
-storageSKU basic
Der Befehl schlägt gleichzeitig mit einer Fehlermeldung fehl, die die zulässigen Werte angibt. Der ARM-Prozessor findet den Fehler vor dem Start der Bereitstellung.
Bereinigen von Ressourcen
Wenn Sie mit dem nächsten Tutorial fortfahren, müssen Sie die Ressourcengruppe nicht löschen.
Wenn Sie jetzt aufhören, möchten Sie vielleicht Ihre bereitgestellten Ressourcen bereinigen, indem Sie die Ressourcengruppe löschen.
- Wählen Sie im Azure-Portal im linken Menü die Option Ressourcengruppe 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
Sie haben die im ersten Tutorial erstellte Vorlage verbessert, indem Sie ihr Parameter hinzugefügt haben. Im nächsten Tutorial erfahren Sie mehr über Vorlagenfunktionen.