Tutorial: Verwenden von Bedingungen in ARM-Vorlagen
Hier wird beschrieben, wie Sie Azure-Ressourcen basierend auf den Bedingungen in einer ARM-Vorlage (Azure Resource Manager-Vorlage) bereitstellen.
Im Tutorial Festlegen der Reihenfolge für die Ressourcenbereitstellung erstellen Sie einen virtuellen Computer, ein virtuelles Netzwerk und einige andere abhängige Ressourcen, z.B. ein Speicherkonto. Anstatt jedes Mal ein neues Speicherkonto zu erstellen, können Benutzer zwischen dem Erstellen eines neuen Speicherkontos und dem Verwenden eines vorhandenen Speicherkontos wählen. Sie definieren einen zusätzlichen Parameter, um dieses Ziel zu erreichen. Wenn der Wert des Parameters new lautet, wird ein neues Speicherkonto erstellt. Andernfalls wird ein vorhandenes Speicherkonto mit dem angegebenen Namen verwendet.
Dieses Tutorial enthält die folgenden Aufgaben:
- Öffnen einer Schnellstartvorlage
- Ändern der Vorlage
- Bereitstellen der Vorlage
- Bereinigen von Ressourcen
In diesem Tutorial wird nur ein grundlegendes Szenario der Verwendung von Bedingungen behandelt. Weitere Informationen finden Sie unter
- Vorlagendateistruktur: Bedingung.
- Bedingtes Bereitstellen einer Ressource in einer ARM-Vorlage.
- Vorlagenfunktion: If (Wenn).
- Vergleichsfunktionen für ARM-Vorlagen
Ein Lernmodul, das Bedingungen behandelt, finden Sie unter Verwalten komplexer Cloudbereitstellungen mithilfe erweiterter ARM-Vorlagenfunktionen.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Voraussetzungen
Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:
Visual Studio Code mit der Erweiterung „Azure Resource Manager-Tools“. Weitere Informationen finden Sie unter Schnellstart: Erstellen von ARM-Vorlagen mit Visual Studio Code.
Verwenden Sie aus Sicherheitsgründen ein generiertes Kennwort für das Administratorkonto des virtuellen Computers. Sie können die Azure Cloud Shell verwenden, um den folgenden Befehl in PowerShell oder der Bash auszuführen:
openssl rand -base64 32
Um mehr zu erfahren, führen Sie
man openssl rand
aus, um die Handbuchseite zu öffnen.Azure Key Vault dient zum Schützen von kryptografischen Schlüsseln und anderen Geheimnissen. Weitere Informationen finden Sie im Tutorial: Integrieren von Azure Key Vault in Ihre Bereitstellung einer ARM-Vorlage. Wir empfehlen Ihnen auch, Ihr Kennwort alle drei Monate zu aktualisieren.
Öffnen einer Schnellstartvorlage
„Azure-Schnellstartvorlagen“ ist ein Repository für ARM-Vorlagen. Statt eine Vorlage von Grund auf neu zu erstellen, können Sie eine Beispielvorlage verwenden und diese anpassen. Die in diesem Tutorial verwendete Vorlage heißt Deploy a simple Windows VM (Bereitstellen eines einfachen virtuellen Windows-Computers).
Wählen Sie in Visual Studio Code Datei>Datei öffnen aus.
Fügen Sie in Dateiname die folgende URL ein:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Wählen Sie Öffnen aus, um die Datei zu öffnen.
Es gibt sechs Ressourcen, die von der Vorlage definiert werden:
- Microsoft.Storage/storageAccounts.
- Microsoft.Network/publicIPAddresses.
- Microsoft.Network/networkSecurityGroups.
- Microsoft.Network/virtualNetworks.
- Microsoft.Network/networkInterfaces.
- Microsoft.Compute/virtualMachines.
Es empfiehlt sich, vor dem Anpassen einer Vorlage die Referenz zu dieser Vorlage zu lesen.
Wählen Sie Datei>Speichern unter aus, um eine Kopie der Datei als azuredeploy.json auf dem lokalen Computer zu speichern.
Ändern der Vorlage
Nehmen Sie zwei Änderungen an der vorhandenen Vorlage vor:
- Fügen Sie einen Parameter für den Speicherkontonamen hinzu. Benutzer können entweder einen neuen oder einen vorhandenen Speicherkontonamen angeben.
- Fügen Sie einen neuen Parameter mit dem Namen
newOrExisting
hinzu. Die Bereitstellung nutzt diesen Parameter, um zu ermitteln, ob ein neues Speicherkonto erstellt oder ein vorhandenes Speicherkonto verwendet werden soll.
Hier ist das Verfahren zum Vornehmen von Änderungen angegeben:
Öffnen Sie azuredeploy.json in Visual Studio Code.
Ersetzen Sie die drei
variables('storageAccountName')
in der gesamten Vorlage durchparameters('storageAccountName')
.Entfernen Sie die folgende Variablendefinition:
Fügen Sie am Anfang des Parameterabschnitts die folgenden beiden Parameter hinzu:
"storageAccountName": { "type": "string" }, "newOrExisting": { "type": "string", "allowedValues": [ "new", "existing" ] },
Drücken Sie ALT+UMSCHALT+F, um die Vorlage in Visual Studio Code zu formatieren.
Die aktualisierte Parameterdefinition sieht wie folgt aus:
Fügen Sie am Anfang der Speicherkontodefinition die folgende Zeile hinzu.
"condition": "[equals(parameters('newOrExisting'),'new')]",
Die Bedingung überprüft den Wert des Parameters
newOrExisting
. Wenn der Parameterwert new lautet, erstellt die Bereitstellung das Speicherkonto.Die aktualisierte Speicherkontodefinition sieht wie folgt aus:
Aktualisieren Sie die Eigenschaft
storageUri
der VM-Ressourcendefinition mit dem folgenden Wert:"storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
Diese Änderung ist erforderlich, wenn Sie ein vorhandenes Speicherkonto unter einer anderen Ressourcengruppe verwenden.
Speichern Sie die Änderungen.
Bereitstellen der Vorlage
Melden Sie sich bei Cloud Shell an.
Wählen Sie Ihre bevorzugte Umgebung aus, indem Sie links oben PowerShell oder Bash (für die CLI) auswählen. Bei einem Wechsel ist ein Neustart der Shell erforderlich.
Wählen Sie Dateien hochladen/herunterladen und dann Hochladen aus. Betrachten Sie hierzu den vorherigen Screenshot. Wählen Sie die Datei aus, die Sie im vorherigen Abschnitt gespeichert haben. Nach dem Hochladen der Datei können Sie den Befehl
ls
und den Befehlcat
verwenden, um zu überprüfen, ob die Datei hochgeladen wurde.Führen Sie das folgende PowerShell-Skript aus, um die Vorlage bereitzustellen.
Wichtig
Der Name des Speicherkontos muss innerhalb von Azure eindeutig sein. Der Name darf nur Kleinbuchstaben und Ziffern enthalten, und er darf maximal 24 Zeichen lang sein. Der Speicherkontoname besteht aus dem Projektnamen, dem store angefügt wird. Stellen Sie sicher, dass der Projektname und der generierte Speicherkontoname den Anforderungen an den Speicherkontonamen entsprechen.
$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names" $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)" $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)" $vmAdmin = Read-Host -Prompt "Enter the admin username" $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix" $resourceGroupName = "${projectName}rg" $storageAccountName = "${projectName}store" New-AzResourceGroup -Name $resourceGroupName -Location $location New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName ` -adminUsername $vmAdmin ` -adminPassword $vmPassword ` -dnsLabelPrefix $dnsLabelPrefix ` -storageAccountName $storageAccountName ` -newOrExisting $newOrExisting ` -TemplateFile "$HOME/azuredeploy.json" Write-Host "Press [ENTER] to continue ..."
Hinweis
Für die Bereitstellung tritt ein Fehler auf, wenn
newOrExisting
auf new festgelegt, aber das Speicherkonto mit dem angegebenen Speicherkontonamen bereits vorhanden ist.
Versuchen Sie, eine andere Bereitstellung zu erstellen, bei der newOrExisting
auf existing festgelegt ist, und geben Sie ein vorhandenes Speicherkonto an. Informationen zum Erstellen eines Speicherkontos im Voraus finden Sie unter Speicherkonto erstellen.
Bereinigen von Ressourcen
Wenn Sie die Azure-Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe, um die bereitgestellten Ressourcen zu bereinigen. Um die Ressourcengruppe zu löschen, wählen Sie Ausprobieren aus, um die Cloud Shell zu öffnen. Um das PowerShell-Skript einzufügen, klicken Sie mit der rechten Maustaste auf den Shellberich, und wählen Sie Einfügen aus.
$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue ..."
Nächste Schritte
In diesem Tutorial haben Sie eine Vorlage entwickelt, bei der Benutzer zwischen dem Erstellen eines neuen Speicherkontos und dem Verwenden eines vorhandenen Speicherkontos wählen können. Informationen zum Abrufen von Geheimnissen aus Azure Key Vault und Verwenden der Geheimnisse als Kennwörter bei der Vorlagenbereitstellung finden Sie hier:
Tutorial: Integrate Azure Key Vault in Resource Manager Template deployment (Tutorial: Integrieren von Azure Key Vault in die Resource Manager-Vorlagenbereitstellung)