Freigeben über


Lernprogramm: Verwenden von Parameterdateien zum Bereitstellen der Azure Resource Manager-Vorlage

In diesem Lernprogramm erfahren Sie, wie Sie Parameterdateien verwenden, um die Werte zu speichern, die Sie während der Bereitstellung übergeben. In den vorherigen Tutorials haben Sie Inline-Parameter mit dem Bereitstellungs Befehl verwendet. Dieser Ansatz hat zum Testen Ihrer Azure Resource Manager-Vorlage (ARM-Vorlage) funktioniert, aber beim Automatisieren von Bereitstellungen kann es einfacher sein, eine Reihe von Werten für Ihre Umgebung zu übergeben. Parameterdateien erleichtern das Packen von Parameterwerten für eine bestimmte Umgebung. In diesem Lernprogramm erstellen Sie Parameterdateien für Entwicklungs- und Produktionsumgebungen. Diese Anweisung ist in 12 Minuten abgeschlossen.

Voraussetzungen

Es wird empfohlen, das Lernprogramm zu Tags abzuschließen, aber es ist nicht erforderlich.

Sie benötigen Visual Studio Code und entweder Azure PowerShell oder azure CLI. Weitere Informationen finden Sie unter Vorlagentools.

Vorlage überprüfen

Ihre Vorlage enthält viele Parameter, die Sie während der Bereitstellung bereitstellen können. Am Ende des vorherigen Lernprogramms hatte Ihre Vorlage die folgende JSON-Datei:

{
  "$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"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    },
    "webAppName": {
      "type": "string",
      "metadata": {
        "description": "Base name of the resource such as web app name and app service plan "
      },
      "minLength": 2
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    },
    "resourceTags": {
      "type": "object",
      "defaultValue": {
        "Environment": "Dev",
        "Project": "Tutorial"
      }
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
    "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "tags": "[parameters('resourceTags')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "tags": "[parameters('resourceTags')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2025-03-01",
      "name": "[variables('webAppPortalName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[parameters('appServicePlanName')]"
      ],
      "tags": "[parameters('resourceTags')]",
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Diese Vorlage funktioniert gut, aber jetzt möchten Sie die Parameter, die Sie für die Vorlage übergeben, ganz einfach verwalten.

Hinzufügen von Parameterdateien

Parameterdateien sind JSON-Dateien mit einer Struktur, die Ihrer Vorlage ähnelt. In der Datei geben Sie die Parameterwerte an, die Sie während der Bereitstellung übergeben möchten.

In der Parameterdatei geben Sie Werte für die Parameter in Ihrer Vorlage an. Der Name der einzelnen Parameter in der Parameterdatei muss mit dem Namen eines Parameters in Ihrer Vorlage übereinstimmen. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet. Um die übereinstimmenden Werte einfach anzuzeigen, sollte jedoch die Groß-/Kleinschreibung aus der Vorlage verwendet werden.

Sie müssen keinen Wert für jeden Parameter angeben. Wenn ein nicht angegebener Parameter über einen Standardwert verfügt, wird dieser Wert während der Bereitstellung verwendet. Wenn ein Parameter keinen Standardwert aufweist und in der Parameterdatei nicht angegeben ist, werden Sie aufgefordert, während der Bereitstellung einen Wert anzugeben.

Sie können keinen Parameternamen in der Parameterdatei angeben, der nicht mit einem Parameternamen in der Vorlage übereinstimmt. Beim Bereitstellen unbekannter Parameter wird ein Fehler angezeigt.

Erstellen Sie in Visual Studio Code eine neue Datei mit dem folgenden Inhalt. Speichern Sie die Datei mit dem Namen azuredeploy.parameters.dev.json:

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

Diese Datei ist Ihre Parameterdatei für die Entwicklungsumgebung. Beachten Sie, dass Standard_LRS als Speicherkonto verwendet wird, Ressourcen mit dem Präfix dev benannt werden, und das Environment-Tag auf Dev festgelegt wird.

Erstellen Sie erneut eine neue Datei mit dem folgenden Inhalt. Speichern Sie die Datei mit dem Namen azuredeploy.parameters.prod.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": "contosodata"
    },
    "storageSKU": {
      "value": "Standard_GRS"
    },
    "appServicePlanName": {
      "value": "contosoplan"
    },
    "webAppName": {
      "value": "contosowebapp"
    },
    "resourceTags": {
      "value": {
        "Environment": "Production",
        "Project": "Tutorial"
      }
    }
  }
}

Diese Datei ist Ihre Parameterdatei für die Produktionsumgebung. Beachten Sie, dass es Standard_GRS für das Speicherkonto verwendet, Ressourcen mit einem contoso-Präfix benennt und das Environment Tag auf Production festlegt. In einer echten Produktionsumgebung möchten Sie auch einen App-Dienst mit einer anderen SKU als kostenlos verwenden, aber wir verwenden diese SKU für dieses Lernprogramm.

Bereitstellen der Vorlage

Verwenden Sie die Azure CLI oder Azure PowerShell, um die Vorlage bereitzustellen.

Als abschließender Test der Vorlage erstellen wir zwei neue Ressourcengruppen für die Entwicklungsumgebung und eine für die Produktionsumgebung.

Ersetzen Sie {path-to-the-template-file}, {path-to-azuredeploy.parameters.dev.json}, {path-to-azuredeploy.parameters.prod.json} und die geschweiften Klammern {} für die Vorlagen- und Parametervariablen mit Ihren Vorlagen- und Parameterdateipfaden.

Zunächst stellen wir es in der Entwicklungsumgebung bereit.

$templateFile = "{path-to-the-template-file}"
$parameterFile="{path-to-azuredeploy.parameters.dev.json}"
New-AzResourceGroup `
  -Name myResourceGroupDev `
  -Location "East US"
New-AzResourceGroupDeployment `
  -Name devenvironment `
  -ResourceGroupName myResourceGroupDev `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile

Nun stellen wir in der Produktionsumgebung bereit.

$parameterFile="{path-to-azuredeploy.parameters.prod.json}"
New-AzResourceGroup `
  -Name myResourceGroupProd `
  -Location "West US"
New-AzResourceGroupDeployment `
  -Name prodenvironment `
  -ResourceGroupName myResourceGroupProd `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile

Hinweis

Wenn die Bereitstellung fehlschlägt, verwenden Sie den verbose Switch, um Informationen zu den Ressourcen abzurufen, die Sie erstellen. Verwenden Sie die debug Option, um weitere Informationen zum Debuggen zu erhalten.

Überprüfen der Bereitstellung

Sie können die Bereitstellung überprüfen, indem Sie die Ressourcengruppen aus dem Azure-Portal untersuchen.

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie im linken Menü "Ressourcengruppen" aus.
  3. Sie sehen die beiden neuen Ressourcengruppen, die Sie in diesem Tutorial bereitgestellt haben.
  4. Wählen Sie eine der Ressourcengruppen aus, und zeigen Sie die bereitgestellten Ressourcen an. Beachten Sie, dass sie den Werten entsprechen, die Sie in der Parameterdatei für diese Umgebung angegeben haben.

Bereinigen von Ressourcen

  1. Wählen Sie im Azure-Portal im linken Menü Ressourcengruppen aus.

  2. Wählen Sie den verlinkten Namen der Ressourcengruppe neben dem Kontrollkästchen aus. Wenn Sie diese Reihe abschließen, haben Sie drei Zu löschende Ressourcengruppen : myResourceGroup, myResourceGroupDev und myResourceGroupProd.

  3. Wählen Sie im oberen Menü das Symbol " Ressourcengruppe löschen " aus.

    Vorsicht

    Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden.

  4. Geben Sie den Namen der Ressourcengruppe in das Popupfenster ein, das angezeigt wird, und wählen Sie "Löschen" aus.

Nächste Schritte

Glückwunsch. Sie haben diese Einführung in die Bereitstellung von Vorlagen in Azure abgeschlossen. Lassen Sie uns wissen, ob Sie im Feedbackabschnitt Kommentare und Vorschläge haben.

Die nächste Lernprogrammreihe enthält ausführlichere Informationen zur Bereitstellung von Vorlagen.