Panoramica del provider AzAPI terraform
Il provider AzAPI è un livello sottile sopra le API REST arm di Azure. Il provider AzAPI consente di gestire qualsiasi tipo di risorsa di Azure usando qualsiasi versione dell'API. Questo provider integra il provider AzureRM abilitando la gestione di nuove risorse e proprietà di Azure (inclusa l'anteprima privata).
Risorse
Per consentire di gestire tutte le risorse e le funzionalità di Azure senza richiedere aggiornamenti, il provider AzAPI include le risorse generiche seguenti:
Nome della risorsa | Descrizione |
---|---|
azapi_resource | Usato per gestire completamente qualsiasi risorsa di Azure (piano di controllo) con CRUD completo. Casi d'uso di esempio: Nuovo servizio di anteprima Nuova funzionalità aggiunta al servizio esistente Funzionalità/servizio esistenti non attualmente coperti |
azapi_update_resource | Usato per gestire risorse o parti di risorse che non dispongono di CRUD completo Casi d'uso di esempio: Aggiornare le nuove proprietà in un servizio esistente Aggiornare la risorsa figlio creata in modo preliminare, ad esempio il record SOA DNS. |
Esempi di configurazione delle risorse
Il frammento di codice seguente configura una risorsa che non esiste attualmente nel provider AzureRM:
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"
}
})
}
Il frammento di codice seguente configura una proprietà di anteprima per una risorsa esistente da 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
}
})
}
Autenticazione con il provider AzAPI
Il provider AzAPI abilita gli stessi metodi di autenticazione del provider AzureRM. Per altre informazioni sulle opzioni di autenticazione, vedere Autenticare Terraform in Azure.
Vantaggi dell'uso del provider AzAPI
Il provider AzAPI offre i vantaggi seguenti:
- Supporta tutti i servizi di Azure:
- Servizi e funzionalità di anteprima privata
- Servizi e funzionalità di anteprima pubblica
- Tutte le versioni dell'API
- Fedeltà completa dei file di stato terraform
- Le proprietà e i valori vengono salvati in stato
- Nessuna dipendenza da Swagger
- Autenticazione di Azure comune e coerente
Esperienza e ciclo di vita del provider AzAPI
Questa sezione descrive alcuni strumenti che consentono di usare il provider AzAPI.
Estensione vs Code e server di linguaggio
L'estensione AzAPI VS Code offre un'esperienza di creazione avanzata con i vantaggi seguenti:
- IntelliSense
- Completamento automatico del codice
- Hint
- Convalida della sintassi
- Informazioni rapide
Strumento di migrazione AzAPI2AzureRM
Il provider AzureRM offre l'esperienza Terraform più integrata per la gestione delle risorse di Azure. Di conseguenza, l'utilizzo consigliato dei provider AzAPI e AzureRM è il seguente:
- Mentre il servizio o la funzionalità è in anteprima, usare il provider AzAPI.
- dopo il rilascio ufficiale del servizio, usare il provider AzureRM.
Lo strumento AzAPI2AzureRM è progettato per facilitare la migrazione dal provider AzAPI al provider AzureRM.
AzAPI2AzureRM è uno strumento open source che automatizza il processo di conversione delle risorse AzAPI in risorse di AzureRM.
AzAPI2AzureRM ha due modalità: pianificare ed eseguire la migrazione:
- Il piano visualizza le risorse AzAPI di cui è possibile eseguire la migrazione.
- Esegue la migrazione delle risorse AzAPI alle risorse di AzureRM sia nei file HCL che nello stato.
AzAPI2AzureRM garantisce che dopo la migrazione la configurazione e lo stato di Terraform siano allineati allo stato effettivo. È possibile verificare che lo stato sia stato aggiornato eseguendo terraform plan
dopo aver completato la migrazione per verificare che non sia stato modificato alcun elemento.
Uso del provider AzAPI
Installare l'estensione VS Code
Aggiungere il provider AzAPI alla configurazione di Terraform.
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 = "..." }
Dichiarare una o più risorse AzAPI come illustrato nel codice di esempio seguente:
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" } } }) }