Översikt över Terraform AzAPI-providern
AzAPI-providern är ett tunt lager ovanpå Azure ARM REST-API:erna. Med AzAPI-providern kan du hantera alla Azure-resurstyper med valfri API-version. Den här providern kompletterar AzureRM-providern genom att aktivera hantering av nya Azure-resurser och egenskaper (inklusive privat förhandsversion).
Resurser
För att du ska kunna hantera alla Azure-resurser och funktioner utan att kräva uppdateringar innehåller AzAPI-providern följande allmänna resurser:
Resursnamn | beskrivning |
---|---|
azapi_resource | Används för att fullständigt hantera alla Azure-resurser (kontrollplan) (API) med fullständig CRUD. Exempel på användningsfall: Ny förhandsversionstjänst Ny funktion har lagts till i befintlig tjänst Befintlig funktion/tjänst omfattas inte för närvarande |
azapi_update_resource | Används för att hantera resurser eller delar av resurser som inte har fullständig CRUD Exempel på användningsfall: Uppdatera nya egenskaper för en befintlig tjänst Uppdatera förskapad underordnad resurs – till exempel DNS SOA-post. |
Exempel på resurskonfiguration
Följande kodfragment konfigurerar en resurs som för närvarande inte finns i AzureRM-providern:
resource "azapi_resource" "publicip" {
type = "Microsoft.Network/Customipprefixes@2021-03-01"
name = "exfullrange"
parent_id = azurerm_resource_group.example.id
location = "westus2"
body = jsonencode({
properties = {
cidr = "10.0.0.0/24"
signedMessage = "Sample Message for WAN"
}
})
}
Följande kodfragment konfigurerar en förhandsgranskningsegenskap för en befintlig resurs från AzureRM:
resource "azapi_update_resource" "test" {
type = "Microsoft.ContainerRegistry/registries@2020-11-01-preview"
resource_id = azurerm_container_registry.acr.id
body = jsonencode({
properties = {
anonymousPullEnabled = var.bool_anonymous_pull
}
})
}
Autentisering med AzAPI-providern
AzAPI-providern aktiverar samma autentiseringsmetoder som AzureRM-providern. Mer information om autentiseringsalternativ finns i Autentisera Terraform till Azure.
Fördelar med att använda AzAPI-providern
AzAPI-providern har följande fördelar:
- Stöder alla Azure-tjänster:
- Tjänster och funktioner för privat förhandsversion
- Tjänster och funktioner för offentlig förhandsversion
- Alla API-versioner
- Fullständig Terraform-tillståndsfilåtergivning
- Egenskaper och värden sparas i tillstånd
- Inget beroende av Swagger
- Vanlig och konsekvent Azure-autentisering
Erfarenhet och livscykel för AzAPI-providern
I det här avsnittet beskrivs några verktyg som hjälper dig att använda AzAPI-providern.
VS Code-tillägget och språkservern
Tillägget AzAPI VS Code ger en omfattande redigeringsupplevelse med följande fördelar:
- Intellisense
- Automatisk slutförande av kod
- Tips
- Syntaxverifiering
- Snabbinformation
AzAPI2AzureRM-migreringsverktyg
AzureRM-providern ger den mest integrerade Terraform-upplevelsen för att hantera Azure-resurser. Därför är den rekommenderade användningen av AzAPI- och AzureRM-leverantörerna följande:
- När tjänsten eller funktionen är i förhandsversion använder du AzAPI-providern.
- När tjänsten har släppts officiellt använder du AzureRM-providern.
Verktyget AzAPI2AzureRM är utformat för att migrera från AzAPI-providern till AzureRM-providern.
AzAPI2AzureRM är ett verktyg med öppen källkod som automatiserar processen med att konvertera AzAPI-resurser till AzureRM-resurser.
AzAPI2AzureRM har två lägen: planera och migrera:
- Planen visar de AzAPI-resurser som kan migreras.
- Migrera migrerar AzAPI-resurserna till AzureRM-resurser i både HCL-filerna och tillståndet.
AzAPI2AzureRM säkerställer efter migreringen att din Terraform-konfiguration och ditt tillstånd är i linje med ditt faktiska tillstånd. Du kan verifiera att tillståndet har uppdaterats genom att köras terraform plan
efter att migreringen har slutförts för att se att ingenting har ändrats.
Använda AzAPI-providern
Installera VS Code-tillägget
Lägg till AzAPI-providern i Terraform-konfigurationen.
terraform { required_providers { azapi = { source = "Azure/azapi" } } } provider "azapi" { # More information on the authentication methods supported by # the AzureRM Provider can be found here: # https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs # subscription_id = "..." # client_id = "..." # client_secret = "..." # tenant_id = "..." }
Deklarera en eller flera AzAPI-resurser enligt följande exempelkod:
resource "azapi_resource" "example" { name = "example" parent_id = data.azurerm_machine_learning_workspace.existing.id type = "Microsoft.MachineLearningServices/workspaces/computes@2021-07-01" location = "eastus" body = jsonencode({ properties = { computeType = "ComputeInstance" disableLocalAuth = true properties = { vmSize = "STANDARD_NC6" } } }) }
Nästa steg
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för