Übung: Erstellen und Bereitstellen einer Azure Resource Manager-Vorlage

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 ebenso zu einem speziellen Abonnement mit der Bezeichnung „Concierge-Abonnement“ hinzugefügt.

In dieser Übung erstellen Sie eine Azure Resource Manager-Vorlage (ARM-Vorlage), stellen sie in Azure bereit und aktualisieren dann diese ARM-Vorlage, um Parameter und Ausgaben hinzuzufügen.

In dieser Übung werden die Azure Resource Manager-Tools für Visual Studio Code verwendet. Installieren Sie diese Erweiterung in Visual Studio Code, bevor Sie mit der Übung beginnen.

Erstellen einer ARM-Vorlage

  1. Öffnen Sie Visual Studio Code, und erstellen Sie eine neue Datei namens azuredeploy.json.

  2. Die Visual Studio Code-Erweiterung für ARM-Vorlagen ist mit Codeausschnitten konfiguriert, die Ihnen beim Entwickeln von Vorlagen helfen. Beginnen wir damit, dass wir eine leere Vorlage hinzufügen. Geben Sie in die erste Zeile der Datei arm ein.

  3. In VS Code werden automatisch mehrere mögliche Optionen angezeigt, die mit arm! beginnen. Wählen Sie die ARM-Vorlage (Azure Resource Manager) aus. VS Code verarbeitet automatisch die Schemas und Sprachen für Ihre Vorlage.

    Visual Studio Code-Datei „azuredeploy.json“ mit den Codeausschnitt-Auswahlmöglichkeiten für Azure Resource Manager-Vorlagen.

    Die Datei sieht nun wie folgt aus:

    {
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "functions": [],
    "variables": {},
    "resources": [],
    "outputs": {}
    }
    

    Beachten Sie, dass diese Datei alle Abschnitte einer ARM-Vorlage enthält, die in der letzten Einheit thematisiert wurde.

  4. Speichern Sie die Änderungen an der Datei, indem Sie Strg+S drücken.

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. Stellen Sie sicher, dass die Azure CLI-Tools installiert sind und Sie sich bei demselben Konto anmelden, mit dem die Sandbox aktiviert wurde.

  1. Wählen Sie Terminal > Neues Terminal aus, um ein Terminalfenster zu öffnen.

  2. Wenn in der Befehlsleiste des Terminalfensters bash angezeigt wird, verfügen Sie über die richtige Shell zum Arbeiten und können mit dem nächsten Abschnitt fortfahren.

  3. Wenn dies nicht der Fall ist, klicken Sie im Dropdownmenü auf Standardprofil auswählen.

    Das Visual Studio Code-Terminalfenster mit „bash“ im Dropdown

  4. Klicken Sie auf Git Bash.

    Das Visual Studio Code-Terminalfenster mit dem Dropdown für die Shellauswahl

  5. Wählen Sie Terminal > Neues Terminal aus, um ein Bash Shell-Terminalfenster zu öffnen.

Anmelden bei Azure

  1. Führen Sie im Terminalfenster diesen Befehl aus, um sich bei Azure anzumelden.

    az login
    
  2. Ein Browser wird geöffnet, in dem Sie sich bei Ihrem Konto anmelden können. 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. Führen Sie in der Bash Shell den folgenden Befehl aus, um das Standardabonnement für alle Azure CLI-Befehle festzulegen, die Sie in dieser Sitzung ausführen.

    az account set --subscription "Concierge Subscription"
    

    Wenn Sie in letzter Zeit mehr als eine Sandbox verwendet haben, werden möglicherweise mehrere Concierge-Abonnements aufgeführt. Wenn ja, nutzen Sie die nächsten beiden Schritte, um das Standardabonnement zu identifizieren und festzulegen.

    1. Führen Sie den folgenden Befehl aus, um die IDs des Concierge Abonnements zu erhalten.
     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
    1. Legen Sie das Standardabonnement fest, indem Sie den folgenden Befehl ausführen und dabei {Ihre Abonnement-ID} durch die neueste Concierge Abonnement-ID ersetzen.
    az account set --subscription {your subscription ID}
    

Festlegen der Standardressourcengruppe

Indem Sie die Standardressourcengruppe auf diejenige festlegen, die beim Aktivieren der Sandbox erstellt wurde, können Sie diesen Parameter in den Azure CLI-Befehlen in dieser Übung weglassen. Führen Sie den folgenden Befehl aus, um die Ressourcengruppe festzulegen.

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

Bereitstellen der Vorlage in Azure

Führen Sie die folgenden Befehle aus, um die ARM-Vorlage in Azure bereitzustellen. Die ARM-Vorlage enthält noch keine Ressourcen, weshalb auch keine erstellten Ressourcen angezeigt werden. Sie sehen jedoch eine erfolgreiche Bereitstellung.

templateFile="azuredeploy.json"
today=$(date "+%d-%b-%Y")
DeploymentName="blanktemplate-"$today

az deployment group create \
 --name $DeploymentName \
 --template-file $templateFile

Im oberen Abschnitt des vorherigen Codes legen Sie Azure CLI-Variablen fest, die den Pfad zur bereitzustellenden Vorlagendatei und den Namen dieser Bereitstellung enthalten. Der untere Bereich, az deployment group create, stellt die Vorlage in Azure bereit. Beachten Sie, dass der Bereitstellungsname **blanktemplate** lautet, mit dem Datum als Suffix.

Im Terminals wird Running... angezeigt.

Um diese Vorlage in Azure bereitzustellen, müssen Sie sich über das Visual Studio Code-Terminal bei Ihrem Azure-Konto anmelden. Stellen Sie sicher, dass Sie Azure PowerShell aus den VS Code-Erweiterungen installiert haben, und melden Sie sich bei demselben Konto an, mit dem die Sandbox aktiviert wurde.

  1. Wählen Sie in der Befehlsleiste Terminal > Neues Terminal aus, um ein PowerShell-Fenster zu öffnen.

  2. Wenn in der Befehlsleiste des Terminalfensters PowerShell angezeigt wird, verfügen Sie über die richtige Shell zum Arbeiten und können mit dem nächsten Abschnitt fortfahren.

    Das Visual Studio Code-Terminalfenster mit ausgewähltem „pwsh“-Terminal

    1. Wenn dies nicht der Fall ist, klicken Sie auf den Pfeil nach unten, und wählen Sie in der Dropdownliste „PowerShell“ aus. Wenn diese Option fehlt, wählen Sie Standardprofil auswählen aus.

    2. Scrollen Sie im Eingabefeld nach unten, und wählen Sie PowerShell aus.

      Das Visual Studio Code-Terminalfenster mit dem Dropdown für die Shellauswahl

    3. Wählen Sie Terminal > Neues Terminal aus, um ein PowerShell-Terminalfenster zu öffnen.

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. Ein Browser wird geöffnet, damit Sie sich bei Ihrem Konto anmelden können.

    Connect-AzAccount
    

    Tipp

    Das Az PowerShell-Modul ersetzt AzureRM. Dabei handelt es sich außerdem um die empfohlene Version für die Interaktion mit Azure.

  2. Melden Sie sich mit dem Konto an, das Sie zum Aktivieren der Sandbox verwendet haben. Nachdem Sie sich angemeldet haben, listet VS Code die Abonnements im Terminalfenster auf, die Ihrem Konto zugeordnet sind. Wenn Sie die Sandbox aktiviert haben, wird ein Codeblock angezeigt, der "name": "Concierge Subscription" enthält. Dies ist das Abonnement, das für den Rest der Übung verwendet werden soll.

Festlegen des Standardabonnements für alle PowerShell-Befehle in dieser Sitzung

  1. Führen Sie den folgenden Befehl aus, um Ihre Abonnements und ihre IDs abzurufen. Die Abonnement-ID befindet sich in der zweiten Spalte. Suchen Sie nach Concierge-Abonnement, und kopieren Sie den Wert in der zweiten Spalte. Der Wert sieht in etwa so aus: cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  2. Führen Sie den folgenden Befehl aus, und ersetzen Sie dabei {Ihre Abonnement-ID} durch die ID, die Sie im vorherigen Schritt kopiert haben, um Ihr aktives Abonnement in das Concierge-Abonnement zu ändern.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  3. Führen Sie den folgenden Befehl aus, damit die Standardressourcengruppe die Ressourcengruppe ist, die für Sie in der Sandboxumgebung 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

Stellen Sie die Vorlage in Azure bereit, indem Sie die folgenden Befehle ausführen. Die ARM-Vorlage enthält noch keine Ressourcen, weshalb auch keine Ressourcen erstellt werden.

$templateFile = "azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="blanktemplate-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

Im oberen Abschnitt des vorherigen Codes werden Azure PowerShell-Variablen festgelegt, die den Pfad zum Bereitstellungspfad und den Namen der Bereitstellung enthalten. Anschließend wird die Vorlage mit dem New-AzResourceGroupDeployment-Befehl in Azure bereitgestellt. Beachten Sie, dass der Bereitstellungsname *blanktemplate* lautet, mit dem Datum als Suffix.

Wenn Sie Ihre ARM-Vorlage in Azure bereitgestellt haben, wechseln Sie zum Azure-Portal und stellen sicher, dass Sie sich im Sandbox-Abonnement befinden. Wählen Sie hierzu 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. Wählen Sie im Ressourcenmenü die Option Ressourcengruppen aus.

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

  3. Im Fenster Übersicht sehen Sie, dass eine Bereitstellung erfolgreich war.

    Azure-Portalschnittstelle für die Ressourcengruppenübersicht, in der im Abschnitt „Bereitstellungen“ angezeigt wird, dass eine Bereitstellung erfolgreich war.

  4. Wählen Sie 1 Succeeded (1 erfolgreich) aus, um die Details der Bereitstellung anzuzeigen.

    Azure-Portalschnittstelle für die Bereitstellungen mit einer aufgelisteten Bereitstellung und dem Status „Erfolgreich“.

  5. Wählen Sie **blanktemplate** aus, damit angezeigt wird, welche Ressourcen bereitgestellt wurden. In diesem Fall bleibt die Anzeige leer, da Sie noch keine Ressourcen in der Vorlage angegeben haben.

    Azure-Portalschnittstelle für die spezifische Bereitstellung ohne aufgelistete Ressourcen.

  6. Lassen Sie die Seite in Ihrem Browser geöffnet. Sie werden die Bereitstellungen erneut überprüfen.

Hinzufügen einer Ressource zur ARM-Vorlage

In der vorherigen Aufgabe haben Sie gelernt, wie Sie eine leere Vorlage erstellen und bereitstellen. Nun sind Sie bereit, um eine tatsächliche Ressource bereitzustellen. In dieser Aufgabe fügen Sie der ARM-Vorlage eine Azure-Speicherkontoressource mit einem Codeausschnitt aus der Erweiterung für Azure Resource Manager-Tools für Visual Studio Code hinzu.

  1. Setzen Sie in Visual Studio Code in der Datei azuredeploy.json Ihren Cursor in die eckigen Klammern im Ressourcenblock "resources":[],.

  2. Geben Sie storage in den Klammern ein. Es wird eine Liste verwandter Codeausschnitte angezeigt. Wählen Sie arm-storage aus.

    Visual Studio Code-Codeausschnitt „arm-storage“ unterhalb der Typen von Wortspeichern

    Ihre Datei sieht wie folgt aus:

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {},
        "functions": [],
        "variables": {},
        "resources": [
            {
                "name": "storageaccount1",
                "type": "Microsoft.Storage/storageAccounts",
                "apiVersion": "2019-06-01",
                "tags": {
                    "displayName": "storageaccount1"
                },
                "location": "[resourceGroup().location]",
                "kind": "StorageV2",
                "sku": {
                    "name": "Premium_LRS",
                    "tier": "Premium"
                }
            }
        ],
        "outputs": {}
    }
    

    Zu bearbeitende Werte sind im neuen Abschnitt Ihrer Datei hervorgehoben. Sie können darin mithilfe der Tab-Taste navigieren.

    Beachten Sie, dass die Attribute tags und location ausgefüllt sind. Das location-Attribut verwendet eine Funktion, um den Speicherort der Ressource auf den Speicherort der Ressourcengruppe festzulegen. Im nächsten Modul erfahren Sie mehr zu Tags und Funktionen.

  3. Ändern Sie die Werte des name der Ressource und den displayName in eindeutige Werte, zum Beispiel learnexercise12321. Dieser Name muss in ganz Azure eindeutig sein, wählen Sie also etwas für Sie eindeutiges aus.

  4. Ändern Sie den Wert von name für die SKU von Premium_LRS in Standard_LRS. Ändern Sie den Wert von tier (Tarif) in Standard. Beachten Sie, dass Visual Studio Code Ihnen die richtigen Optionen für Ihre Attributwerte in IntelliSense anbietet. Löschen Sie den Standardwert einschließlich der Anführungszeichen, und geben Sie Anführungszeichen ein, um zu sehen, dass dies funktioniert.

    Visual Studio Code miz den IntelliSense-Optionen für das Attribut „name“ der Speicher-SKU

  5. Der Speicherort der Ressource ist auf den Speicherort der Ressourcengruppe festgelegt, an dem sie bereitgestellt wird. Behalten Sie hier den Standardwert bei.

  6. Speichern Sie die Datei.

Bereitstellen der aktualisierte ARM-Vorlage

Hier ändern Sie den Namen der Bereitstellung so, dass er die Funktion der Bereitstellung besser wiedergibt.

Führen Sie die folgenden Azure CLI-Befehle im Terminal aus. Bei dem Ausschnitt handelt es sich um denselben Code, den Sie zuvor verwendet haben, wobei jedoch der Name der Bereitstellung geändert wurde.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addstorage-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile

Führen Sie die folgenden Azure PowerShell-Befehle im Terminal aus. Bei dem Ausschnitt handelt es sich um denselben Code, den Sie zuvor verwendet haben, wobei jedoch der Name der Bereitstellung geändert wurde.

$templateFile = "azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addstorage-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

Überprüfen Ihrer Bereitstellung

  1. Navigieren Sie in Ihrem Browser zum Azure-Portal zurück. Wechseln Sie zu Ihrer Ressourcengruppe, wo jetzt 2 Succeeded (2 erfolgreiche) Bereitstellungen angezeigt werden. Wählen Sie diese Verknüpfung aus.

    Beachten Sie, dass sich beide Bereitstellungen in der Liste befinden.

    Azure-Portalschnittstelle für die Bereitstellungen mit den zwei aufgelisteten Bereitstellungen und dem Status „Erfolgreich“.

  2. Wählen Sie **addstorage**aus.

    Azure-Portalschnittstelle für die spezifische Bereitstellung mit einer aufgelisteten Ressource.

Beachten Sie, dass das Speicherkonto bereitgestellt wurde.