Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure har två officiella Terraform-leverantörer: AzureRM och AzAPI. Båda leverantörerna hanterar Azure resurser via Terraform, men de använder olika metoder. Att förstå dessa skillnader hjälper dig att välja rätt leverantör – eller kombination av leverantörer – för ditt projekt.
Översikt över varje leverantör
AzureRM är standardprovidern för att hantera Azure resurser med Terraform. Den innehåller utvalda, typerade resursblock med integrerad validering, konsekvent beteende och omfattande dokumentation om communityn. AzureRM stöder dock endast en delmängd av Azure resurstyper och API-versioner, och nya funktioner ligger ofta efter Azure versioner.
AzAPI är ett tunt lager ovanpå REST-API:erna för Azure Resource Manager (ARM). Den stöder alla Azure resurstyper i valfri API-version, inklusive förhandsversionsfunktioner och tjänster som ännu inte stöds i AzureRM. AzAPI ger dig direkt åtkomst till ARM-API:et utan att vänta på provideruppdateringar.
När du ska använda AzureRM
Använd AzureRM som primär provider när:
- De resurser som du hanterar stöds fullt ut i AzureRM med stabila API-versioner.
- Du vill ha utvalda resursscheman med inbyggd validering och bra IDE-stöd.
- Ditt team värdesätter breda communityresurser, exempel och modultillgänglighet.
- Du hanterar väletablerade Azure tjänster som inte kräver åtkomst till förhandsversionsfunktioner.
AzureRM är rätt standard för de flesta team som bygger på Azure. Börja med AzureRM och komplettera det endast med AzAPI när det behövs.
När du ska använda AzAPI
Använd AzAPI som primär provider – eller för att komplettera AzureRM – när:
- Du måste hantera Azure resurser som ännu inte stöds i AzureRM.
- Du måste använda en specifik API-version, inklusive förhandsversioner, som AzureRM inte exponerar.
- Du behöver åtkomst till resursegenskaper som Inte visas i AzureRM.
- Du vill ha fullständig kontroll över API-versionen av efterlevnads- eller reproducerbarhetsskäl.
- Du hanterar resurser omedelbart efter Azure-releasen, före AzureRM lägger till support.
När du ska använda båda leverantörer tillsammans
AzureRM och AzAPI är utformade för att fungera sida vid sida. Ett vanligt mönster är att använda AzureRM för större delen av infrastrukturen när du använder AzAPI för direkt ARM API-åtkomst där det behövs:
- Använd
azapi_update_resourceför att ange egenskaper för AzureRM-hanterade resurser som AzureRM inte exponerar. - Använd
azapi_resourceför att hantera en ny tjänst eller förhandsgranskningsfunktion medan resten av stacken använder AzureRM. - Använd
azapi_resource_actionför att utföra åtgärder på AzureRM-hanterade resurser som inte passar en standardlivscykel för skapa/läsa/uppdatera/ta bort.
# 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"
}
}
}
}
Välja en långsiktig strategi
AzureRM-primary: Hantera alla resurser i AzureRM och använd endast AzAPI som en tillfällig brygga för funktioner som ännu inte stöds. Migrera AzAPI-resurser till AzureRM när supporten blir tillgänglig med hjälp av aztfmigrate verktyget.
AzAPI-primary: Hantera alla resurser via AzAPI för konsekvent API-versionskontroll och tidig åtkomst till nya funktioner. Den här metoden kräver mer konfiguration men ger dig fullständig kontroll över varje resurs API-version.
De flesta team bör börja med en AzureRM-primär strategi och anta AzAPI efter behov.
Jämförelse av funktioner
| Funktion | AzureRM | AzAPI |
|---|---|---|
| Stöder alla Azure resurstyper | Nej – kuraterad delmängd | Yes |
| Stöder förhandsversioner av API | No | Yes |
| Kuraterade resursscheman | Yes | No |
| Inbyggd egenskapsverifiering | Yes | Partiell (via preflight) |
| IDE:s automatiska komplettering av egenskaper | Yes | Ja (med VS Code-tillägget) |
| Svarsexport/JMESPath-filtrering | No | Yes |
| Dataplanets resursförvaltning | Yes | Ja (valda resurstyper) |
| Providerfunktioner för ID-konstruktion | No | Ja (v2.0 och senare) |
| Validering före körning vid planeringsfasen | Ja (valda resurstyper) | Ja – Aktivera preflight-validering |