Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure heeft twee officiële Terraform-providers: AzureRM en AzAPI. Beide providers beheren Azure resources via Terraform, maar ze gebruiken verschillende benaderingen. Als u deze verschillen begrijpt, kunt u de juiste provider (of combinatie van providers) kiezen voor uw project.
Overzicht van elke provider
AzureRM is de standaardprovider voor het beheren van Azure resources met Terraform. Het biedt gecureerde, getypte resourceblokken met geïntegreerde validatie, consistent gedrag en brede communitydocumentatie. AzureRM ondersteunt echter slechts een subset van Azure resourcetypen en API-versies, en nieuwe functies blijven vaak achter bij Azure releases.
AzAPI is een dunne laag boven op de REST API's van Azure Resource Manager (ARM). Het ondersteunt elk Azure resourcetype op elke API-versie, inclusief preview-functies en -services die nog niet worden ondersteund in AzureRM. AzAPI biedt u directe toegang tot de ARM-API zonder te wachten op providerupdates.
Wanneer gebruikt u AzureRM?
Gebruik AzureRM als uw primaire provider wanneer:
- De resources die u beheert, worden volledig ondersteund in AzureRM met stabiele API-versies.
- U wilt gecureerde resourceschema's met ingebouwde validatie en goede IDE-ondersteuning.
- Uw team waardeert brede communitybronnen, voorbeelden en beschikbaarheid van modules.
- U beheert gevestigde Azure services waarvoor geen toegang tot preview-functies is vereist.
AzureRM is de juiste standaardinstelling voor de meeste teams die bouwen op Azure. Begin met AzureRM en vul deze alleen aan met AzAPI wanneer dat nodig is.
Wanneer gebruikt u AzAPI?
Gebruik AzAPI als uw primaire provider, of als aanvulling op AzureRM, wanneer:
- U moet Azure resources beheren die nog niet worden ondersteund in AzureRM.
- U moet een specifieke API-versie, inclusief preview-versies, gebruiken die azureRM niet beschikbaar maakt.
- U hebt toegang nodig tot resource-eigenschappen die niet worden weergegeven in AzureRM.
- U wilt volledige controle over de API-versie om nalevings- of reproduceerbaarheidsredenen.
- U beheert resources direct na Azure release, voordat AzureRM ondersteuning toevoegt.
Wanneer beide providers samen moeten worden gebruikt
AzureRM en AzAPI zijn ontworpen om naast elkaar te werken. Een veelvoorkomend patroon is het gebruik van AzureRM voor de meeste infrastructuur terwijl u AzAPI gebruikt voor directe ARM API-toegang, indien nodig:
- Gebruik
azapi_update_resourcedit om eigenschappen in te stellen voor door AzureRM beheerde resources die niet beschikbaar zijn in AzureRM. - Gebruik
azapi_resourcedeze functie om een nieuwe service of preview-functie te beheren terwijl de rest van uw stack Gebruikmaakt van AzureRM. - Hiermee
azapi_resource_actionkunt u bewerkingen uitvoeren op door AzureRM beheerde resources die niet voldoen aan een standaard levenscyclus voor maken/lezen/bijwerken/verwijderen.
# 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"
}
}
}
}
Een langetermijnstrategie kiezen
AzureRM-primair: beheer alle resources in AzureRM en gebruik AzAPI alleen als tijdelijke brug voor functies die nog niet worden ondersteund. Migreer AzAPI-resources naar AzureRM zodra er ondersteuning beschikbaar is met behulp van het aztfmigrate hulpprogramma.
AzAPI-primary: beheer alle resources via AzAPI voor consistent API-versiebeheer en vroege toegang tot nieuwe functies. Deze benadering vereist meer configuratie, maar biedt u volledige controle over de API-versie van elke resource.
De meeste teams moeten beginnen met een primaire AzureRM-strategie en zo nodig AzAPI gebruiken.
Vergelijking van functies
| Kenmerk | AzureRM | AzAPI |
|---|---|---|
| Ondersteunt alle Azure resourcetypen | Nee, gecureerde subset | Yes |
| Ondersteunt preview-API-versies | No | Yes |
| Samengestelde bronschema's | Yes | No |
| Validatie van ingebouwde eigenschappen | Yes | Gedeeltelijk (via voorbereidende fase) |
| IDE automatisch aanvullen voor eigenschappen | Yes | Ja (met VS Code-extensie) |
| Antwoordexport/JMESPath-filteren | No | Yes |
| Resourcebeheer voor datavlak | Yes | Ja (geselecteerde resourcetypen) |
| Providerfuncties voor id-constructie | No | Ja (v2.0 en hoger) |
| Preflight-validatie tijdens de planningsfase | Ja (geselecteerde resourcetypen) | Ja: preflight-validatie inschakelen |