Verwalten mehrerer Azure-Bereitstellungen mit Azure Resource Manager-Vorlagentags und Parameterdateien

Abgeschlossen

Es gibt zwei Features von Azure Resource Manager-Vorlagen (ARM), die Sie bei der Bereitstellung in mehreren Azure-Umgebungen verwenden sollten. Diese Features sind Ressourcentags und ARM-Vorlagenparameterdateien.

Wenn Sie Ihren Umgebungen weitere Ressourcen hinzufügen, werden Sie schnell feststellen, dass Sie eine Möglichkeit benötigen, um den Zweck dieser Ressourcen zu identifizieren. Ressourcen verfügen zu diesem Zweck über ein tags:-Attribut. Wenn die Bereitstellung in weiteren Umgebungen erfolgt, benötigen Sie eine effiziente Möglichkeit, um die Eingabeparameter nachzuverfolgen. ARM-Vorlagen können Parameterdateien zum Verwalten von Parametern für jede Bereitstellungsumgebung verwenden.

Azure-Ressourcentags

Sie können Ressourcen taggen, um Werte hinzuzufügen, mit deren Hilfe Sie ihre Verwendung identifizieren können. Beispielsweise können Sie Tags hinzufügen, mit denen die Umgebung und das Projekt aufgelistet werden, zu der bzw. dem die Ressource gehört. Oder Sie können Tags hinzufügen, die eine Kostenstelle oder das Team identifizieren, die oder das Besitzer der Ressource ist. Fügen Sie alle Werte hinzu, die für Ihre Organisation sinnvoll sind.

Der Tagwert wird auf der Übersichtsseite für diese Azure-Ressource und in Kostenberichten angezeigt.

Erstellen von Azure-Ressourcentags

Jede Ressource verfügt über ein tags:-Attribut. Bisher haben Sie die Standardeigenschaft displayName für das Tag für Ihr Speicherkonto verwendet:

"tags": {
          "displayName": "[parameters('storageName')]"
        },

Sie können einen Parameter definieren, der weitere Informationen enthält, und diesen Parameter dann im tags:-Attribut verwenden, um dieses Attribut hilfreicher zu gestalten. Beispielsweise erstellen Sie einen Parameter, der ein Objekt mit dem Namen resourceTags enthält:

"resourceTags": {
    "type": "object",
    "defaultValue": {
        "Environment": "Dev",
        "Project": "Inventory"
        }
    }

Hier haben Sie ein Objekt erstellt, in dem Werte für einen Umgebungsnamen und einen Projektnamen gespeichert sind. Sie können aber alles definieren, was Sie möchten.

Anschließend können Sie diesen Parameter für alle Ressourcen verwenden, die für die Dev-Umgebung und das Inventory-Projekt genutzt werden, beispielsweise Ihr Speicherkonto.

"resources": [{
        "name": "[variables('uniqueStorageName')]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2019-06-01",
        "tags": "[parameters('resourceTags')]",
        ...
    }],

ARM-Vorlagenparameterdateien

Eine ARM-Vorlagenparameterdatei enthält Werte, die an die ARM-Vorlage übergeben werden, wenn die Vorlage ausgeführt wird. Die Verwendung einer Parameterdatei für jede Umgebung, in der eine ARM-Vorlage bereitgestellt wird, stellt sicher, dass die richtigen Parameter für die jeweilige Umgebung festgelegt werden. Außerdem können so der Verlauf und die Verwaltung dieser Parameterwerte in der Quellcodeverwaltung nachverfolgt werden.

Verwenden von ARM-Vorlagenparameterdateien

ARM-Vorlagenparameterdateien sind JSON-Dateien, die Parameterwerte enthalten. Beispielsweise kann für die Parameter, die Sie bisher in der ARM-Vorlage verwendet haben, eine Vorlagenparameterdatei für jede Bereitstellungsumgebung wie folgt erstellt werden:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "storagePrefix": {
        "value": "storage"
      },
      "storageSKU": {
        "value": "Standard_LRS"
      },
      "resourceTags": {
        "value": {
          "Environment": "Dev",
          "Project": "Learn"
        }
      }
    }
  }

Anschließend können Sie eine Datei für jede Umgebung erstellen, die dieser Datei ähnelt. Diese Dateien können z. B. „azuredeploy.parameters.dev.json“ und „azuredeploy.parameters.prod.json“ heißen und unterschiedliche Werte für die Parameter enthalten.

Wenn Sie eine ARM-Vorlage mit einer Parameterdatei bereitstellen möchten, geben Sie den Pfad zur Parameterdatei im Bereitstellungsbefehl an. In der Azure CLI verwenden Sie --parameters {path to parameter file}. In PowerShell verwenden Sie -TemplateParameterFile {path to parameter file}.

templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
  --name myResourceGroupDev \
  --location "East US"
az deployment group create \
  --name devenvironment \
  --resource-group myResourceGroupDev \
  --template-file $templateFile \
  --parameters $devParameterFile