Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure verfügt über zwei offizielle Terraform-Anbieter: AzureRM und AzAPI. Beide Anbieter verwalten Azure Ressourcen über Terraform, verwenden aber unterschiedliche Ansätze. Wenn Sie diese Unterschiede verstehen, können Sie für Ihr Projekt den richtigen Anbieter (oder eine Kombination aus Anbietern) auswählen.
Übersicht über jeden Anbieter
AzureRM ist der Standardanbieter für die Verwaltung Azure Ressourcen mit Terraform. Es bietet kuratierte, typierte Ressourcenblöcke mit integrierter Validierung, konsistentem Verhalten und umfassender Communitydokumentation. AzureRM unterstützt jedoch nur eine Teilmenge von Azure Ressourcentypen und API-Versionen, und neue Features liegen häufig hinter Azure Versionen zurück.
AzAPI ist eine dünne Schicht über den Azure Resource Manager (ARM) REST-APIs. Er unterstützt alle Azure Ressourcentyps in jeder API-Version, einschließlich Vorschaufeatures und -diensten, die in AzureRM noch nicht unterstützt werden. AzAPI ermöglicht Ihnen direkten Zugriff auf die ARM-API, ohne auf Anbieterupdates zu warten.
Wann man AzureRM verwenden sollte
Verwenden Sie AzureRM als primären Anbieter in folgenden Fällen:
- Die von Ihnen verwalteten Ressourcen werden in AzureRM mit stabilen API-Versionen vollständig unterstützt.
- Sie möchten kuratierte Ressourcenschemas mit integrierter Überprüfung und guter IDE-Unterstützung.
- Ihr Team wertet breite Communityressourcen, Beispiele und Modulverfügbarkeit.
- Sie verwalten bewährte Azure Dienste, die keinen Zugriff auf Vorschaufeatures erfordern.
AzureRM ist der richtige Standardwert für die meisten Teams, die auf Azure aufbauen. Beginnen Sie mit AzureRM, und ergänzen Sie es nur bei Bedarf mit AzAPI.
Wann man AzAPI verwenden sollte
Verwenden Sie AzAPI als primären Anbieter – oder um AzureRM zu ergänzen – wenn:
- Sie müssen Azure Ressourcen verwalten, die in AzureRM noch nicht unterstützt werden.
- Sie müssen eine bestimmte API-Version verwenden, einschließlich Vorschauversionen, die AzureRM nicht verfügbar macht.
- Sie benötigen Zugriff auf Ressourceneigenschaften, die AzureRM nicht bereitstellt.
- Sie möchten die vollständige Kontrolle über die API-Version aus Compliance- oder Reproduzierbarkeitsgründen.
- Sie verwalten Ressourcen direkt nach der Veröffentlichung von Azure, bevor AzureRM Unterstützung hinzufügt.
Wann beide Anbieter zusammen verwendet werden sollen
AzureRM und AzAPI sind so konzipiert, dass sie nebeneinander funktionieren. Ein gängiges Muster ist die Verwendung von AzureRM für die meisten Ihrer Infrastruktur bei Verwendung von AzAPI für direkten ARM-API-Zugriff bei Bedarf:
- Dient
azapi_update_resourcezum Festlegen von Eigenschaften für von AzureRM verwaltete Ressourcen, die von AzureRM nicht offengelegt werden. - Verwenden Sie
azapi_resource, um einen neuen Dienst oder eine Vorschaufunktion zu verwalten, während der Rest Ihres Stacks AzureRM verwendet. - Verwenden Sie
azapi_resource_action, um Vorgänge für von AzureRM verwaltete Ressourcen auszuführen, die nicht in einen standardmäßigen Lebenszyklus von Erstellen/Lesen/Aktualisieren/Löschen passen.
# Manage the primary resource with AzureRM
resource "azurerm_kubernetes_cluster" "example" {
name = "my-aks"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
dns_prefix = "myaks"
default_node_pool {
name = "default"
node_count = 1
vm_size = "Standard_DS2_v2"
}
identity {
type = "SystemAssigned"
}
}
# Use AzAPI to set a property not exposed by AzureRM
resource "azapi_update_resource" "aks_preview_feature" {
type = "Microsoft.ContainerService/managedClusters@2024-02-01"
resource_id = azurerm_kubernetes_cluster.example.id
body = {
properties = {
networkProfile = {
networkDataplane = "cilium"
}
}
}
}
Auswählen einer langfristigen Strategie
AzureRM-primär: Verwalten Sie alle Ressourcen in AzureRM, und verwenden Sie AzAPI nur als temporäre Brücke für Features, die noch nicht unterstützt werden. Migrieren Sie AzAPI-Ressourcen zu AzureRM, sobald der Support verfügbar wird, indem Sie das aztfmigrate Tool verwenden.
AzAPI-primary: Verwalten Sie alle Ressourcen über AzAPI für eine konsistente API-Versionssteuerung und frühzeitigen Zugriff auf neue Features. Dieser Ansatz erfordert mehr Konfiguration, bietet Ihnen jedoch die vollständige Kontrolle über die API-Version jeder Ressource.
Die meisten Teams sollten mit einer AzureRM-primären Strategie beginnen und AzAPI bei Bedarf einführen.
Funktionsvergleich
| Merkmal | AzureRM | AzAPI |
|---|---|---|
| Unterstützt alle Azure Ressourcentypen | Nein – kuratierte Teilmenge | Ja |
| Unterstützt Vorschau-API-Versionen | No | Ja |
| Kuratierte Ressourcenschemas | Ja | No |
| Integrierte Eigenschaftenüberprüfung | Ja | Teilweise (über Preflight) |
| Autovervollständigung der IDE für Eigenschaften | Ja | Ja (mit VS Code-Erweiterung) |
| Antwortexport / JMESPath-Filterung | No | Ja |
| Ressourcenverwaltung der Datenebene | No | Ja (ausgewählte Ressourcentypen) |
| Anbieterfunktionen für die ID-Konstruktion | No | Ja (v2.0 und höher) |
| Preflight-Validierung während der Planungsphase | No | Ja – Aktivieren der Preflight-Überprüfung |