Freigeben über


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.

Diagramm der Bedingungen zum Verwenden der Resource Manager-Vorlage

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

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:

Ö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).

  1. Wählen Sie in Visual Studio Code Datei>Datei öffnen aus.

  2. 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
    
  3. Wählen Sie Öffnen aus, um die Datei zu öffnen.

  4. Es gibt sechs Ressourcen, die von der Vorlage definiert werden:

    Es empfiehlt sich, vor dem Anpassen einer Vorlage die Referenz zu dieser Vorlage zu lesen.

  5. 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:

  1. Öffnen Sie azuredeploy.json in Visual Studio Code.

  2. Ersetzen Sie die drei variables('storageAccountName') in der gesamten Vorlage durch parameters('storageAccountName') .

  3. Entfernen Sie die folgende Variablendefinition:

    Der Screenshot hebt die Variablendefinitionen hervor, die Sie entfernen müssen.

  4. 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:

    Resource Manager-Nutzungsbedingung

  5. 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:

    Der Screenshot zeigt die aktualisierte Speicherkontodefinition.

  6. 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.

  7. Speichern Sie die Änderungen.

Bereitstellen der Vorlage

  1. Melden Sie sich bei Cloud Shell an.

  2. 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.

    Azure-Portal, Cloud Shell, Datei hochladen

  3. 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 Befehl cat verwenden, um zu überprüfen, ob die Datei hochgeladen wurde.

  4. 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)