Verwenden von Azure PowerShell zum Exportieren einer Vorlage
Um bei der Erstellung von Azure Resource Manager-Vorlagen zu helfen, können Sie eine Vorlage aus vorhandenen Ressourcen exportieren. Die exportierte Vorlage hilft Ihnen, die JSON-Syntax und die Eigenschaften zu verstehen, die Ihre Ressourcen bereitstellen. Zum Automatisieren zukünftiger Bereitstellungen beginnen Sie mit der exportierten Vorlage und passen Sie sie an Ihr Szenario an. Beim dem Prozess „Vorlage exportieren“ wird versucht, eine verwendbare Vorlage zu erstellen. Die meisten exportierten Vorlagen erfordern jedoch einige Änderungen, bevor sie für die Bereitstellung von Azure-Ressourcen verwendet werden können.
Mit Resource Manager können Sie eine oder mehrere Ressourcen für den Export in eine Vorlage auswählen. Sie können sich auf genau die Ressourcen konzentrieren, die in der Vorlage erforderlich sind.
In diesem Artikel wird das Exportieren von Vorlagen über Azure PowerShell veranschaulicht. Informationen zu anderen Optionen finden Sie unter:
- Export template with Azure CLI (Exportieren einer Vorlage über die Azure-Befehlszeilenschnittstelle)
- Export template with Azure portal (Exportieren einer Vorlage über das Azure-Portal)
- REST API export from resource group (REST-API-Export aus einer Ressourcengruppe) und REST API export from deployment history (REST-API-Export aus dem Bereitstellungsverlauf).
Eine Vorlage kann auf zwei Arten exportiert werden:
Export aus Ressourcengruppe oder Ressource. Diese Option generiert eine neue Vorlage aus vorhandenen Ressourcen. Die exportierte Vorlage ist eine „Momentaufnahme“ des aktuellen Zustands der Ressourcengruppe. Sie können eine gesamte Ressourcengruppe oder bestimmte Ressourcen innerhalb dieser Ressourcengruppe exportieren.
Aus dem Verlauf speichern. Diese Option ruft eine exakte Kopie einer für die Bereitstellung verwendeten Vorlage ab. Sie geben die Bereitstellung aus dem Bereitstellungsverlauf an.
Je nach gewählter Option haben die exportierten Vorlagen unterschiedliche Qualitäten.
Aus Ressourcengruppe oder Ressource | Aus Verlauf |
---|---|
Die Vorlage wird automatisch generiert. Sie sollten den Code vor der Bereitstellung verbessern. | Die Vorlage ist eine genaue Kopie der vom Vorlagenautor erstellten Kopie. Sie kann ohne Änderungen erneut bereitgestellt werden. |
Die Vorlage ist eine Momentaufnahme des aktuellen Zustands der Ressourcen. Sie umfasst alle manuellen Änderungen, die Sie nach der Bereitstellung vorgenommen haben. | Die Vorlage zeigt nur den Zustand der Ressourcen zum Zeitpunkt der Bereitstellung an. Alle manuellen Änderungen, die Sie nach der Bereitstellung vorgenommen haben, sind nicht enthalten. |
Sie können auswählen, welche Ressourcen aus einer Ressourcengruppe exportiert werden sollen. | Alle Ressourcen für eine bestimmte Bereitstellung sind enthalten. Sie können keine Teilmenge dieser Ressourcen auswählen oder Ressourcen hinzufügen, die zu einem anderen Zeitpunkt hinzugefügt wurden. |
Die Vorlage enthält alle Eigenschaften für die Ressourcen, einschließlich einiger Eigenschaften, die Sie normalerweise während der Bereitstellung nicht festlegen würden. Möglicherweise möchten Sie diese Eigenschaften entfernen oder bereinigen, bevor Sie die Vorlage wiederverwenden. | Die Vorlage enthält nur die für die Bereitstellung erforderlichen Eigenschaften. Die Vorlage ist von geringerer Dichte und einfacher zu lesen. |
Die Vorlage enthält möglicherweise nicht alle für die Wiederverwendung erforderlichen Parameter. Die meisten Eigenschaftswerte sind in der Vorlage hartcodiert. Um die Vorlage in anderen Umgebungen neu bereitzustellen, müssen Sie Parameter hinzufügen, die die Möglichkeit zur Konfiguration der Ressourcen erhöhen. Sie können die Auswahl von Parameter einschließen auch aufheben, sodass Sie Ihre eigenen Parameter erstellen können. | Die Vorlage enthält Parameter, die es einfach gestalten, sie in verschiedenen Umgebungen neu bereitzustellen. |
Exportieren Sie die Vorlage aus einer Ressourcengruppe oder Ressource, wenn Folgendes zutrifft:
- Sie müssen Änderungen an den Ressourcen erfassen, die nach der ursprünglichen Bereitstellung vorgenommen wurden.
- Sie möchten die zu exportierenden Ressourcen auswählen.
- Die Ressourcen wurden nicht mit einer Vorlage erstellt.
Exportieren Sie die Vorlage für folgende Fälle aus dem Verlauf:
- Sie benötigen eine einfach wiederzuverwendende Vorlage.
- Sie müssen keine Änderungen einbeziehen, die Sie nach der ursprünglichen Bereitstellung vorgenommen haben.
Es ist nicht garantiert, dass der Export erfolgreich ist. Der Export ist keine zuverlässige Möglichkeit, bereits vorhandene Ressourcen in Vorlagen umzuwandeln, die in der Produktion verwendet werden können. Es ist besser, Ressourcen von Grund auf neu zu erstellen, indem Sie eine handgeschriebene Bicep-Datei, ARM-Vorlage oder Terraform verwenden.
Beim Exportieren aus einer Ressourcengruppe oder Ressource wird die exportierte Vorlage aus den veröffentlichten Schemas für jeden Ressourcentyp generiert. Gelegentlich weist das Schema nicht die neueste Version für einen Ressourcentyp auf. Überprüfen Sie die exportierte Vorlage, um sicherzustellen, dass sie die benötigten Eigenschaften enthält. Bearbeiten Sie bei Bedarf die exportierte Vorlage so, dass sie die benötigte API-Version verwendet.
In den exportierten Vorlagen fehlen möglicherweise einige Kennwortparameter. Sie müssen die Vorlagenreferenz überprüfen und diese Parameter manuell hinzufügen, bevor Sie die Vorlagen zum Bereitstellen von Ressourcen verwenden können.
Die Funktion „Vorlage exportieren“ unterstützt nicht das Exportieren von Azure Data Factory-Ressourcen. Informationen zum Exportieren von Data Factory-Ressourcen finden Sie unter Kopieren oder Klonen einer Data Factory in Azure Data Factory.
Um über das klassische Bereitstellungsmodell erstellte Ressourcen zu exportieren, müssen Sie sie zum Resource Manager-Bereitstellungsmodell migrieren.
Wenn beim Exportieren einer Vorlage eine Warnung angezeigt wird, die angibt, dass ein Ressourcentyp nicht exportiert wurde, können Sie die Eigenschaften für diese Ressource immer noch ermitteln. Informationen zu Ressourceneigenschaften finden Sie in der Vorlagenreferenz. Sie können den Ressourcentyp auch in der Azure-REST-API nachschlagen.
Die Ressourcengruppe, für die Sie die exportierte Vorlage erstellen, ist auf 200 Ressourcen begrenzt. Wenn Sie versuchen, eine Ressourcengruppe mit mehr als 200 Ressourcen zu exportieren, wird die Fehlermeldung Export template is not supported for resource groups more than 200 resources
angezeigt.
Nach dem Einrichten der Ressourcengruppe können Sie eine Azure Resource Manager-Vorlage für die Ressourcengruppe exportieren.
Verwenden Sie das Cmdlet Export-AzResourceGroup, und geben Sie den Namen der Ressourcengruppe an, um alle Ressourcen in einer Ressourcengruppe zu exportieren.
Export-AzResourceGroup -ResourceGroupName demoGroup
Die Vorlage wird als lokale Datei gespeichert.
Anstatt alle Ressourcen in der Ressourcengruppe zu exportieren, können Sie die zu exportierenden Ressourcen auswählen.
Übergeben Sie die Ressourcen-ID, um eine Ressource zu exportieren.
$resource = Get-AzResource `
-ResourceGroupName <resource-group-name> `
-ResourceName <resource-name> `
-ResourceType <resource-type>
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource $resource.ResourceId
Übergeben Sie die Ressourcen-IDs in einem Array, um mehr als eine Ressource zu exportieren.
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource @($resource1.ResourceId, $resource2.ResourceId)
Wenn Sie die Vorlage exportieren, können Sie angeben, ob in der Vorlage Parameter verwendet werden sollen. Parameter für Ressourcennamen sind zwar standardmäßig enthalten, haben jedoch keinen Standardwert.
"parameters": {
"serverfarms_demoHostPlan_name": {
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"type": "String"
}
}
Wenn Sie beim Exportieren der Vorlage den -SkipResourceNameParameterization
-Parameter verwenden, sind in der Vorlage keine Parameter für Ressourcennamen enthalten. Stattdessen wird der Ressourcenname der Ressource direkt auf den aktuellen Wert festgelegt. Sie können den Namen während der Bereitstellung nicht anpassen.
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2022-09-01",
"name": "demoHostPlan",
...
}
]
Wenn Sie beim Exportieren der Vorlage den -IncludeParameterDefaultValue
-Parameter verwenden, enthält der Vorlagenparameter einen Standardwert, der auf den aktuellen Wert festgelegt ist. Sie können entweder diesen Standardwert verwenden oder den Standardwert überschreiben, indem Sie einen anderen Wert übergeben.
"parameters": {
"serverfarms_demoHostPlan_name": {
"defaultValue": "demoHostPlan",
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"defaultValue": "webSite3bwt23ktvdo36",
"type": "String"
}
}
Sie können eine Vorlage aus einer Bereitstellung im Bereitstellungsverlauf speichern. Die Vorlage, die Sie erhalten, ist genau dieselbe, die für die Bereitstellung verwendet wurde.
Verwenden Sie das Cmdlet Save-AzResourceGroupDeploymentTemplate, um eine Vorlage aus einer Ressourcengruppenbereitstellung zu erhalten. Sie geben den Namen der abzurufenden Bereitstellung an. Hilfe zum Erhalt des Namens einer Bereitstellung finden Sie unter Anzeigen des Bereitstellungsverlaufs mit Azure Resource Manager.
Save-AzResourceGroupDeploymentTemplate -ResourceGroupName demoGroup -DeploymentName demoDeployment
Die Vorlage wird als lokale Datei mit dem Namen der Bereitstellung gespeichert.
Um Vorlagen zu erhalten, die auf anderen Ebenen bereitgestellt werden, verwenden Sie Folgendes:
- Save-AzDeploymentTemplate für Bereitstellungen für Abonnements
- Save-AzManagementGroupDeploymentTemplate für Bereitstellungen in Verwaltungsgruppen
- Save-AzTenantDeploymentTemplate für Bereitstellungen für Mandanten
- Erfahren Sie, wie Sie Vorlagen über die Azure-Befehlszeilenschnittstelle, das Azure-Portal oder die REST-API exportieren.
- Informationen zur Resource Manager-Vorlagensyntax finden Sie unter Verstehen der Struktur und Syntax von Azure Resource Manager-Vorlagen.
- Informationen zum Entwickeln von Vorlagen finden Sie in den Schritt-für-Schritt-Tutorials.