Übung: Verwenden von Azure Resource Manager-Tags und Parameterdateien

Abgeschlossen

In dieser Übung fügen Sie Tags hinzu, um das Organisieren und die Nachverfolgung Ihrer Microsoft Azure-Ressourcen zu unterstützen. Sie können auch eine Azure Resource Manager-Vorlagenparameterdatei (ARM) verwenden, damit verschiedene Parameterkonfigurationen für Bereitstellungen möglich sind.

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 eines Tags zum Nachverfolgen der Ressourcenbereitstellungsumgebung und des Projekts

Hier erstellen Sie zuerst einen Parameter, der als Ressourcentag in Ihrer Vorlage verwendet wird.

  1. Setzen Sie in Visual Studio Code in der Datei azuredeploy.json den Cursor hinter die schließende Klammer für den Parameter storageSKU. Fügen Sie ein Komma hinzu, und drücken Sie die EINGABETASTE.

  2. Geben Sie par ein. Es wird eine Liste verwandter Codeausschnitte angezeigt.

  3. Wählen Sie arm-param aus. Denken Sie daran, dass diese Aktion der Vorlage einen generischen Parameter hinzufügt. Sie sieht wie dieser Code aus:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Ändern Sie parameter1 in resourceTags, und ändern Sie den Wert "type": in object. Beachten Sie, dass Parameter die Datentypen „string“, „secureString“, „int“, „bool“, „object“, „secureObject“ und „array“ aufweisen können. Einen Link zu Beispielsyntax für diese Parametertypen finden Sie in der Zusammenfassung dieses Moduls.

  5. Fügen Sie ein Attribut namens defaultValue: hinzu, und legen Sie den Wert auf {"Environment": "Dev", "Project": "Tutorial"} fest.

    Der Parameterblock sollte wie im folgenden Code aussehen:

    "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"
            ]
        },
        "resourceTags": {
        "type": "object",
        "defaultValue": {
            "Environment": "Dev",
            "Project": "Tutorial"
            }
        }
    },
    
  6. Verwenden Sie diesen Parameter, um die Speicherkontoressource zu taggen. Ändern Sie das tags:-Attribut in der Ressourcendefinition:

    "tags": "[parameters('resourceTags')]",
    
  7. Ihre Datei sollte 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"
                ]
            },
            "resourceTags": {
            "type": "object",
            "defaultValue": {
                "Environment": "Dev",
                "Project": "Tutorial"
            }
        }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": "[parameters('resourceTags')]",
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    
  8. Speichern Sie die Datei.

Bereitstellen der ARM-Vorlage mit aktualisierten Tags

  • Stellen Sie die aktualisierte ARM-Vorlage in Azure bereit. Achten Sie darauf, denselben storagePrefix-Parameterwert zu verwenden, den Sie zuvor verwendet haben.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="updateTags-"$today
    
    az deployment group create \
        --name $DeploymentName \
        --template-file $templateFile \
        --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
    
  • Stellen Sie die aktualisierte ARM-Vorlage in Azure bereit. Achten Sie darauf, denselben storagePrefix-Parameterwert zu verwenden, den Sie zuvor verwendet haben.

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

Überprüfen des Vorhandenseins der neuen Tags in der Bereitstellung

  1. Wählen Sie in Azure die Ressourcengruppe [Sandbox-Ressourcengruppenname] aus und dann das Speicherkonto, das Sie bereitgestellt haben.

  2. Beachten Sie Umgebung: Dev und Project : Tutorial:

    Screenshot of the Azure portal that shows the selected tags in the Storage account Overview page.

Verwenden einer Parameterdatei

Derzeit gibt es drei Parameter, die jedes Mal angegeben werden müssen, wenn Sie diese Vorlage bereitstellen. Jeder Benutzer der Vorlage kann eine Datei erstellen, die seine Parameterwerte enthält. Hier erstellen Sie eine Parameterdatei für die Verwendung mit Ihrer Vorlage.

  1. Erstellen Sie in Visual Studio Code eine andere Datei. Nennen Sie sie azuredeploy.parameters.dev.json.

  2. In dieser Datei speichern Sie die Werte für die Vorlagenparameter, die Sie in die Vorlage für die Entwicklungsumgebung eingeben möchten. Ändern Sie einen Tagwert, damit Sie sehen können, dass für die Bereitstellung eine Änderung vorgenommen wird. Sie könnten beispielsweise projectName in Learn ändern:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storagePrefix": {
          "value": "{unique-prefix}"
        },
        "storageSKU": {
          "value": "Standard_LRS"
        },
        "resourceTags": {
          "value": {
            "Environment": "Dev",
            "Project": "Learn"
          }
        }
      }
    }
    
  3. Denken Sie daran, {unique-prefix} durch ein eindeutiges Präfix zu ersetzen.

  4. Speichern Sie die Datei.

Bereitstellen der Vorlage mit der Parameterdatei

In diesem Abschnitt stellen Sie die ARM-Vorlage bereit und geben an, welche Parameterdatei verwendet werden soll.

  1. Führen Sie im Visual Studio Code-Terminal die folgenden Azure CLI-Befehle aus:

    templateFile="azuredeploy.json"
    devParameterFile="azuredeploy.parameters.dev.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addParameterFile-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters $devParameterFile
    
  2. Überprüfen Sie in Azure, ob die Bereitstellung erfolgreich war und ob sich der Tagwert geändert hat:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Erstellen Sie als Herausforderung eine Parameterdatei für die Produktionsumgebung. Ändern Sie den Pfad der Parameterdatei, wenn Sie den Befehl ausführen, um die Bereitstellung in der Produktionsumgebung auszuführen.

  1. Führen Sie im Visual Studio Code-Terminal die folgenden Azure PowerShell-Befehle aus:

    $templateFile = "azuredeploy.json"
    $parameterFile="azuredeploy.parameters.dev.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addParameterFile-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -TemplateParameterFile $parameterFile
    
  2. Überprüfen Sie in Azure, ob die Bereitstellung erfolgreich war und ob sich der Tagwert geändert hat:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

  3. Erstellen Sie als Herausforderung eine Parameterdatei für die Produktionsumgebung. Ändern Sie den Pfad der Parameterdatei, wenn Sie den Befehl ausführen, um die Bereitstellung in der Produktionsumgebung auszuführen.