Blog

Bedingte Teile in ARM-Vorlagen

Peter Groenewegen

Aktualisiert Oktober 21, 2025
2 Minuten

Bei der Erstellung von wiederverwendbaren ARM-Vorlagen haben Sie eine Reihe von Optionen, wie Sie bedingte Teile in Ihren Vorlagen verwalten können. Die kleinsten Bedingungen können über Parameter, mittlere über T-Shirt-Größen und große über verknüpfte Vorlagen realisiert werden. In diesem Blogbeitrag zeige ich Ihnen, wie Sie Bedingungen durch verknüpfte Vorlagen implementieren können. Bedingungen mit verknüpften Vorlagen erstellen Von einer Vorlage im Ressourcenmanager können Sie eine Verknüpfung zu einer anderen Vorlage herstellen. Auf diese Weise können Sie eine große Vorlage in kleinere, leichter zu verwaltende Vorlagen zerlegen. Die Verknüpfung erfolgt über den Vorlagentyp Microsoft.Resources/deployments. Diese Vorlage enthält eine Eigenschaft templateLink mit der Uri zur eigentlichen Vorlage.

"Ressourcen": [
  {
  "apiVersion": "2015-01-01",
  "name": "linkedTemplate",
  "Typ": "Microsoft.Ressourcen/Einsätze",
  "Eigenschaften": {
  "Modus": "inkrementell",
  "templateLink": {
  "uri": "https://www.contoso.com/AzureTemplates/newStorageAccount.json",
  "contentVersion": "1.0.0.0"
  },
  "Parameter": {
  "StorageAccountName":{"Wert": "[Parameter('StorageAccountName')]"}
  }
  }
  }
]

Indem Sie die uri änderbar machen, können Sie wählen, welche Vorlage Sie laden möchten. Die uri kann eine Variable sein, die Sie auf der Grundlage eines bestimmten Parameters zusammenstellen. Ein einfaches Beispiel könnte sein:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "Parameter":{
  "Bedingung":{
  "type": "string",
  "allowedValues":{
  "Option1",
  "Option2"
  }
  },
  ...
  },
  "Variablen":{
  "conditionaluri":"[concat('https://www.contoso.com/AzureTemplates/newStorageAccount',parameters('condition'),'.json')]",
...
  }
  "Ressourcen": [
  {
  "apiVersion": "2015-01-01",
  "name": "linkedTemplate",
  "Typ": "Microsoft.Ressourcen/Einsätze",
  "Eigenschaften": {
  "Modus": "inkrementell",
  "templateLink": {
  "uri": "[variables('conditionaluri')]",
  "contentVersion": "1.0.0.0"
  },
  "Parameter": {
  "StorageAccountName":{"Wert": "[Parameter('StorageAccountName')]"}
  }
  }
  }
  ]
}

In dieser Vorlage wählt der Parameter condition zwischen den uri's:

Beide Vorlagen können unterschiedliche Implementierungen der StorageAccount-Vorlage enthalten. Diese Technik kann auf alle Bedingungen angewendet werden, die Sie in Ihren Vorlagen implementieren möchten. Sie kann auf mehreren Ebenen in Ihrer verknüpften Vorlagenstruktur angewendet werden.

Verfasst von

Peter Groenewegen

Contact

Let’s discuss how we can support your journey.