Visão geral do provedor Terraform AzAPI
O provedor AzAPI é uma camada fina sobre as APIs REST do Azure ARM. O provedor AzAPI permite que você gerencie qualquer tipo de recurso do Azure usando qualquer versão da API. Este provedor complementa o provedor AzureRM habilitando o gerenciamento de novos recursos e propriedades do Azure (incluindo visualização privada).
Recursos
Para permitir que você gerencie todos os recursos e recursos do Azure sem exigir atualizações, o provedor AzAPI inclui os seguintes recursos genéricos:
Nome do Recurso | Description |
---|---|
azapi_resource | Usado para gerenciar totalmente qualquer recurso (API) do Azure (plano de controle) com CRUD completo. Exemplos de casos de uso: Novo serviço de pré-visualização Novo recurso adicionado ao serviço existente Funcionalidade/serviço existente não abrangido atualmente |
azapi_update_resource | Usado para gerenciar recursos ou partes de recursos que não têm CRUD completo Exemplos de casos de uso: Atualizar novas propriedades em um serviço existente Atualize o recurso filho pré-criado - como o registro SOA DNS. |
Exemplos de configuração de recursos
O trecho de código a seguir configura um recurso que não existe atualmente no provedor 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"
}
})
}
O trecho de código a seguir configura uma propriedade de visualização para um recurso existente do 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
}
})
}
Autenticação usando o provedor AzAPI
O provedor AzAPI habilita os mesmos métodos de autenticação que o provedor AzureRM. Para obter mais informações sobre opções de autenticação, consulte Autenticar Terraform no Azure.
Benefícios de usar o provedor AzAPI
O provedor AzAPI apresenta os seguintes benefícios:
- Suporta todos os serviços do Azure:
- Serviços e funcionalidades de pré-visualização privada
- Serviços e funcionalidades de pré-visualização pública
- Todas as versões da API
- Fidelidade total do arquivo de estado Terraform
- As propriedades e os valores são salvos no estado
- Sem dependência do Swagger
- Autenticação comum e consistente do Azure
Experiência e ciclo de vida do fornecedor AzAPI
Esta seção descreve algumas ferramentas para ajudá-lo a usar o provedor AzAPI.
Extensão VS Code e Language Server
A extensão AzAPI VS Code fornece uma rica experiência de criação com os seguintes benefícios:
- Intellisense
- Preenchimento automático de código
- Sugestões
- Validação de sintaxe
- Informações rápidas
Ferramenta de migração AzAPI2AzureRM
O provedor AzureRM fornece a experiência Terraform mais integrada para gerenciar recursos do Azure. Portanto, o uso recomendado dos provedores AzAPI e AzureRM é o seguinte:
- Enquanto o serviço ou recurso estiver em visualização, use o provedor AzAPI.
- assim que o serviço for lançado oficialmente, use o provedor AzureRM.
A ferramenta AzAPI2AzureRM foi projetada para ajudar a migrar do provedor AzAPI para o provedor AzureRM.
AzAPI2AzureRM é uma ferramenta de código aberto que automatiza o processo de conversão de recursos AzAPI em recursos AzureRM.
AzAPI2AzureRM tem dois modos: planejar e migrar:
- Plan exibe os recursos AzAPI que podem ser migrados.
- Migrar migra os recursos AzAPI para recursos do AzureRM nos arquivos HCL e no estado.
AzAPI2AzureRM garante após a migração que sua configuração e estado Terraform estejam alinhados com seu estado real. Você pode validar que o estado foi atualizado executando terraform plan
depois de concluir a migração para ver que nada mudou.
Usando o provedor AzAPI
Instalar a extensão VS Code
Adicione o provedor AzAPI à sua configuração do 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 = "..." }
Declare um ou mais recursos AzAPI, conforme mostrado no código de exemplo a seguir:
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" } } }) }
Próximos passos
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários