Übung: Verwenden von Azure Resource Manager-Funktionen zum Erstellen von Ausdrücken

Abgeschlossen

Hinweis

Wenn Sie zum ersten Mal eine Sandbox aktivieren und die Bedingungen akzeptieren, ist Ihr Microsoft-Konto einem neuen Azure-Verzeichnis mit dem Namen „Microsoft Learn Sandbox“ zugeordnet. Sie werden zu einem speziellen Abonnement mit der Bezeichnung „Concierge-Abonnement“ hinzugefügt.

In dieser Übung erstellen Sie einen Ausdruck mithilfe von Azure Resource Manager-Vorlagenfunktionen (ARM). Der Ausdruck erstellt einen eindeutigen Namen pro Ressourcengruppe, indem eine Präfixeingabe und ein Hash der Ressourcengruppen-ID kombiniert werden. Dieser Ausdruck führt zu Azure Storage-Kontonamen wie dev2hu6sbtr5 und staging5his8hgr67.

In dieser Übung werden die Azure Resource Manager-Tools für Visual Studio Code verwendet. Sie müssen diese Erweiterung in Visual Studio Code installieren.

Erstellen der ARM-Vorlagendatei

Im vorherigen Modul haben Sie eine ARM-Vorlage erstellt, mit der ein Speicherkonto bereitgestellt wurde. Sie haben dieser Datei Parameter und eine Ausgabe hinzugefügt. Hier verwenden Sie diese Datei als Ausgangspunkt. Die Ausgabe wurde jedoch entfernt, um den Mehraufwand zu verringern.

  1. Öffnen Sie Visual Studio Code, und erstellen Sie eine Datei mit dem Namen azuredeploy.json. Wenn Sie aus dem vorherigen Modul bereits über diese Datei verfügen, können Sie diese Datei verwenden.

  2. Ersetzen Sie den Inhalt der Datei durch folgenden Code:

    {
        "$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"
                ]
            }
       },
        "functions": [],
        "variables": {},
        "resources": [{
            "name": "[parameters('storageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[parameters('storageName')]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
         "outputs": {}
    }
    
  3. Wenn Sie das vorherige Modul nicht abgeschlossen haben, nehmen Sie sich einen Moment Zeit, um diese Datei durchzusehen. Beachten Sie den storageName-Parameter. Dieser Parameter wird verwendet, um einen eindeutigen Namen für das Speicherkonto zu übergeben.

Erstellen eines Ausdrucks zum Festlegen eines eindeutigen Speicherkontonamens

Anstatt den Namen des Speicherkontos zu übergeben, ändern Sie den Parameter so, dass ein Präfix für den Namen des Speicherkontos angenommen wird. Dieser Parameter wird an die concat-Funktion in Ihrem Ausdruck übergeben.

  1. Ändern Sie storageName im Abschnitt parameters in storagePrefix.

  2. Ändern Sie den Wert des maxLength:-Attributs des storagePrefix-Parameters in 11. Die maximale Länge für den Namen eines Speicherkontos beträgt 24 Zeichen, sodass Sie sicherstellen müssen, dass der hinzugefügte Hash aus der von Ihnen erstellten Funktion den Namen nicht auf über 24 Zeichen verlängert.

  3. Erstellen Sie einen Ausdruck zum Festlegen des eindeutigen Speicherkontonamens. Ändern Sie im Abschnitt resources die Werte der name:- und displayName:-Attribute von "[parameters('storageName')]" in "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". In der vorherigen Lerneinheit haben Sie bereits Informationen zu diesem Ausdruck erhalten. Die Datei sollte jetzt wie folgt aussehen:

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
           "storagePrefix": {
               "type": "string",
               "minLength": 3,
               "maxLength": 11
           },
            "storageSKU": {
                "type": "string",
                "defaultValue": "Standard_LRS",
                "allowedValues": [
                    "Standard_LRS",
                    "Standard_GRS",
                    "Standard_RAGRS",
                    "Standard_ZRS",
                    "Premium_LRS",
                    "Premium_ZRS",
                    "Standard_GZRS",
                    "Standard_RAGZRS"
                ]
            }
       },
        "functions": [],
        "variables": {},
        "resources": [{
            "name": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    

Bereitstellen der ARM-Vorlage in Azure

Um diese Vorlage in Azure bereitzustellen, müssen Sie sich über das Visual Studio Code-Terminal bei Ihrem Azure-Konto anmelden. Sorgen Sie dafür, dass die Azure CLI-Tools installiert sind. Achten Sie außerdem darauf, dass Sie sich bei demselben Konto anmelden, über das die Sandbox aktiviert wurde.

  1. Öffnen Sie über das Menü Terminal ein Terminalfenster.

  2. Wenn das Dropdownmenü rechts im Terminalfenster bash heißt, ist die richtige Shell zum Arbeiten ausgewählt. Sie können in diesem Fall mit dem nächsten Abschnitt fortfahren.

    Screenshot des Terminalfensters in Visual Studio Code mit Auswahl von „bash“ im Dropdownmenü

  3. Wenn nicht die richtige Shell ausgewählt ist, wählen Sie im Dropdownmenü Standardshell auswählen aus.

  4. Wählen Sie die Option bash aus:

    Screenshot der Liste für die Auswahl einer Shell im Terminalfenster in Visual Studio Code

  5. Wählen Sie + im Terminal aus, um ein neues Terminal mit bash als Shell zu erstellen.

Anmelden bei Azure

  1. Führen Sie im Terminal in Visual Studio Code den folgenden Befehl aus, um sich bei Azure anzumelden. Wenn Sie diesen Befehl ausführen, wird ein Browser geöffnet, in dem Sie sich bei Ihrem Konto anmelden können:

    az login
    
  2. Sobald Sie angemeldet sind, wird im Terminal eine Liste der Abonnements angezeigt, die mit diesem Konto verknüpft sind. Wenn Sie die Sandbox aktiviert haben, wird ein Abonnement mit dem Namen Concierge-Abonnement angezeigt. Dieses verwenden Sie für den Rest der Übung.

  3. Legen Sie das Standardabonnement für alle Azure CLI-Befehle fest, die Sie in dieser Sitzung ausführen:

    az account set --subscription "Concierge Subscription"
    

    Hinweis

    Wenn Sie in jüngster Zeit mehr als eine Sandbox verwendet haben, werden möglicherweise mehrere Abonnements vom Typ „Concierge-Abonnement“ aufgeführt. Verwenden Sie in diesem Fall die nächsten beiden Schritte, um das Standardabonnement festzulegen. Wenn der oben genannte Befehl erfolgreich war, überspringen Sie die nächsten beiden Schritte.

  4. Rufen Sie die Concierge-Abonnement-IDs ab:

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Legen Sie das Standardabonnement mit der Abonnement-ID fest. Ersetzen Sie {your subscription ID} durch die aktuelle Concierge-Abonnement-ID.

    az account set --subscription {your subscription ID}
    

Festlegen der Standardressourcengruppe

  • Legen Sie die Standardressourcengruppe auf die Ressourcengruppe fest, die in der Sandboxumgebung für Sie erstellt wurde. So können Sie auf diesen Parameter bei den restlichen Azure CLI-Befehlen in dieser Übung verzichten.

    az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
    

Bereitstellen der Vorlage in Azure

Sie haben die Bereitstellungsbefehle im vorherigen Modul kennengelernt. Hier verwenden Sie den Befehl az deployment group create der Azure CLI.

  • Stellen Sie die Vorlage mithilfe von Azure CLI-Befehlen im Visual Studio Code-Terminal bereit. Ersetzen Sie dabei {your-prefix} durch eine andere Zeichenfolge. Sie könnten beispielsweise storage verwenden.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addfunction-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters storagePrefix={your-prefix}
    

    Im ersten Abschnitt dieses Codes legen Sie Azure CLI-Variablen für den Pfad zur Vorlagendatei fest, die Sie bereitstellen möchten, sowie den Namen dieser Bereitstellung. Verwenden Sie dann den Befehl az deployment group create, um die Vorlage in Azure bereitzustellen.

    Die Meldung Running... sollte im Terminal angezeigt werden.

Sie müssen sich über das Visual Studio Code-Terminal bei Ihrem Azure-Konto anmelden, um diese Vorlage in Azure bereitzustellen. Stellen Sie sicher, dass die Azure PowerShell-Tools installiert sind und Sie sich bei demselben Konto anmelden, mit dem die Sandbox aktiviert wurde.

  1. Öffnen Sie über das Menü Terminal ein Terminalfenster.

  2. Wenn das Dropdownmenü rechts im Terminalfenster pwsh heißt, ist die richtige Shell zum Arbeiten ausgewählt. Sie können in diesem Fall mit dem nächsten Abschnitt fortfahren.

    Screenshot des Terminalfensters in Visual Studio Code mit Auswahl von „pwsh“ im Dropdownmenü

  3. Wenn nicht die richtige Shell ausgewählt ist, wählen Sie im Dropdownmenü Standardshell auswählen aus.

  4. Wählen Sie pwsh aus.

    Screenshot der Liste für die Auswahl einer Shell im Terminalfenster in Visual Studio Code

  5. Wählen Sie + im Terminal aus, um ein neues Terminal mit pwsh als Shell zu erstellen.

Anmelden bei Azure mithilfe von Azure PowerShell

  1. Führen Sie im Terminal in Visual Studio Code den folgenden Befehl aus, um sich bei Azure anzumelden. Wenn Sie diesen Befehl ausführen, werden Sie aufgefordert, einen Browser mit einer URL zu öffnen, unter der Sie sich bei Ihrem Konto anmelden können. Verwenden Sie den Code, der in der Eingabeaufforderung angezeigt wird. Stellen Sie sicher, dass Sie sich mit demselben Konto anmelden, das Sie zum Aktivieren der Sandbox verwendet haben.

    Connect-AzAccount
    
  2. Sobald Sie angemeldet sind, wird im Terminal eine Liste der Abonnements angezeigt, die mit diesem Konto verknüpft sind. Wenn Sie die Sandbox aktiviert haben, wird ein Abonnement mit dem Namen Concierge-Abonnement angezeigt. Dieses verwenden Sie für den Rest der Übung.

    Legen Sie das Standardabonnement für alle Azure CLI-Befehle fest, die Sie in dieser Sitzung ausführen.

  3. Rufen Sie die Abonnement-ID ab. Der Befehl listet Ihre Abonnements und deren IDs auf. Die Abonnement-ID befindet sich in der zweiten Spalte. Suchen Sie nach Concierge Subscription, und kopieren Sie die zweite Spalte. Sie sieht etwa wie folgt aus: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

    Get-AzSubscription
    
  4. Ändern Sie Ihr aktives Abonnement in „Concierge-Abonnement“. Denken Sie daran, {Your subscription ID} durch die kopierte ID zu ersetzen.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  5. Legen Sie die Standardressourcengruppe auf die Ressourcengruppe fest, die in der Sandboxumgebung für Sie erstellt wurde. So können Sie auf diesen Parameter bei den restlichen Azure PowerShell-Befehlen in dieser Übung verzichten.

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

Bereitstellen der Vorlage in Azure

Sie haben die Bereitstellungsbefehle im vorherigen Modul kennengelernt. Hier verwenden Sie den Azure PowerShell-Befehl New-AzResourceGroupDeployment.

  • Stellen Sie die Vorlage mithilfe von Azure PowerShell-Befehlen im Visual Studio Code-Terminal bereit. Ersetzen Sie dabei {your-prefix} durch eine andere Zeichenfolge. Sie könnten beispielsweise storage verwenden.

    $templateFile = "azuredeploy.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addfunction-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -storagePrefix {your-prefix}
    

Im ersten Abschnitt dieses Codes legen Sie Azure PowerSheli-Variablen für den Pfad zur Vorlagendatei fest, die Sie bereitstellen möchten, sowie den Namen dieser Bereitstellung. Verwenden Sie dann den Befehl New-AzResourceGroupDeployment, um die Vorlage in Azure bereitzustellen.

Überprüfen Ihrer Bereitstellung

Wenn die Bereitstellung abgeschlossen ist, navigieren Sie zum Azure Portal, und stellen Sie sicher, dass Sie sich im Sandboxabonnement befinden. Wählen Sie zur Überprüfung des Abonnements Ihren Avatar in der oberen rechten Ecke der Seite aus. Klicken Sie dann auf Verzeichnis wechseln. Wählen Sie in der Liste das Verzeichnis Microsoft Learn Sandbox aus.

  1. Klicken Sie im linken Bereich auf Ressourcengruppen.

  2. Wählen Sie [Name der Sandboxressourcengruppe] aus.

  3. In der Übersicht sehen Sie, dass eine Bereitstellung erfolgreich war:

    Screenshot: Bereich „Übersicht“ über Ressourcengruppen im Azure-Portal. Im Bereich „Bereitstellungen“ wird angezeigt, dass eine Bereitstellung erfolgreich war.

  4. Klicken Sie auf 1 erfolgreich, um die Details der Bereitstellung anzuzeigen:

    Screenshot: Bereitstellungen im Azure-Portal. Eine Bereitstellung ist aufgeführt, die den Status „erfolgreich“ aufweist.

  5. Wählen Sie addfunction aus, damit angezeigt wird, welche Ressourcen bereitgestellt wurden:

    Screenshot: Azure-Portal mit einer Übersicht der bereitgestellten Speicherkonten

  6. Lassen Sie die Seite im Browser geöffnet, damit Sie die Bereitstellungen später im Modul erneut überprüfen können.