Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A: todas as camadas do Gerenciamento de API
Este artigo mostra como usar o Terraform para criar uma instância de Gerenciamento de API no Azure. Você também pode usar o Terraform para tarefas de gerenciamento comuns, como importar APIs em sua instância de Gerenciamento de API.
O Gerenciamento de API do Azure ajuda as organizações a publicar APIs em desenvolvedores externos, parceiros e internos para desbloquear o potencial de seus dados e serviços. O Gerenciamento de API fornece as competências essenciais para garantir um programa de API de sucesso através do envolvimento do desenvolvedor, ideias de negócios, análises, segurança e proteção. O Gerenciamento de API permite que você crie e gerencie gateways de API modernos para serviços de back-end hospedados em qualquer lugar.
O Terraform habilita a definição, a visualização e a implantação da infraestrutura de nuvem. Usando o Terraform, você cria arquivos de configuração usando a sintaxe HCL. A sintaxe da HCL permite que você especifique o provedor de nuvem, como o Azure, e os elementos que compõem sua infraestrutura de nuvem. Depois de criar seus arquivos de configuração, você cria um plano de execução que permite visualizar as alterações de infraestrutura antes que elas sejam implantadas. Depois de verificar as alterações, aplique o plano de execução para implantar a infraestrutura.
Neste artigo, você aprenderá como:
- Criar um nome de animal de estimação aleatório para o nome do grupo de recursos do Azure usando random_pet
- Criar um grupo de recursos do Azure usando azurerm_resource_group
- Criar uma cadeia de caracteres aleatória para o nome do serviço de Gerenciamento de API do Azure usando random_string
- Criar um serviço de Gerenciamento de API do Azure usando azurerm_api_management
Pré-requisitos
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Para a CLI do Azure:
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Introdução ao Azure Cloud Shell.
Se você preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para obter outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Para o Azure PowerShell:
- Se você optar por usar o Azure PowerShell localmente:
- Instale a versão mais recente do módulo do Az PowerShell.
- Conecte-se à sua conta do Azure usando o cmdlet Connect-AzAccount .
- Se você optar por usar o Azure Cloud Shell:
- Confira a visão geral do Azure Cloud Shell para obter mais informações.
- Se você optar por usar o Azure PowerShell localmente:
Implementar o código do Terraform
Observação
O código de exemplo deste artigo está localizado no repositório GitHub do Terraform do Azure. Você pode exibir o arquivo de log que contém os resultados do teste das versões atuais e anteriores do Terraform.
Veja mais artigos e código de exemplo mostrando como usar o Terraform para gerenciar recursos do Azure
Crie um diretório no qual testar e executar o código de exemplo do Terraform e faça dele o diretório atual.
Crie um arquivo chamado
main.tfe insira o seguinte código:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_string" "azurerm_api_management_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_api_management" "api" { name = "apiservice${random_string.azurerm_api_management_name.result}" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name publisher_email = var.publisher_email publisher_name = var.publisher_name sku_name = "${var.sku_name}_${var.sku_count}" }Crie um arquivo chamado
outputs.tfe insira o seguinte código:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "api_management_service_name" { value = azurerm_api_management.api.name }Crie um arquivo chamado
providers.tfe insira o seguinte código:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>4.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Crie um arquivo chamado
variables.tfe insira o seguinte código:variable "resource_group_location" { type = string default = "eastus" description = "Location for all resources." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." } variable "publisher_email" { default = "test@contoso.com" description = "The email address of the owner of the service" type = string validation { condition = length(var.publisher_email) > 0 error_message = "The publisher_email must contain at least one character." } } variable "publisher_name" { default = "publisher" description = "The name of the owner of the service" type = string validation { condition = length(var.publisher_name) > 0 error_message = "The publisher_name must contain at least one character." } } variable "sku_name" { description = "The pricing tier of this API Management service" default = "BasicV2" type = string validation { condition = contains(["Basic", "BasicV2", "Consumption", "Developer", "Premium", "PremiumV2", "Standard", "StandardV2"], var.sku_name) error_message = "The sku must be one of the following: Basic, BasicV2, Consumption, Developer, Premium, PremiumV2, Standard, StandardV2." } } variable "sku_count" { description = "The instance size of this API Management service." default = 1 type = number validation { condition = contains([1, 2], var.sku_count) error_message = "The sku_count must be one of the following: 1, 2." } }
Inicializar Terraform
Execute o terraform init para inicializar a implantação do Terraform. Esse comando baixa o provedor do Azure necessário para gerenciar seus recursos do Azure.
terraform init -upgrade
Pontos-chave:
- O parâmetro
-upgradeatualiza os plug-ins do provedor necessários para a versão mais recente que esteja em conformidade com as restrições de versão da configuração.
Criar um plano de execução Terraform
Execute o comando terraform plan para criar um plano de execução.
terraform plan -out main.tfplan
Pontos-chave:
- O comando
terraform plancria um plano de execução, mas não o executa. Em vez disso, ele determina quais ações são necessárias para criar a configuração especificada em seus arquivos de configuração. Esse padrão permite que você verifique se o plano de execução corresponde às suas expectativas antes de fazer qualquer alteração nos recursos reais. - O parâmetro opcional
-outpermite que você especifique um arquivo de saída para o plano. Usar o parâmetro-outgarante que o plano que você examinou seja exatamente o que é aplicado.
Aplicar um plano de execução do Terraform
Utilize terraform apply para aplicar o plano de execução à sua infraestrutura de nuvem.
terraform apply main.tfplan
Pontos-chave:
- O comando de exemplo
terraform applypressupõe que você já executouterraform plan -out main.tfplan. - Se você especificou um nome de arquivo diferente para o parâmetro
-out, use esse mesmo nome de arquivo na chamada paraterraform apply. - Se você não usou o parâmetro
-out, chameterraform applysem nenhum parâmetro.
Observação
Pode levar de 30 a 40 minutos para criar e ativar um serviço de Gerenciamento de API.
Verifique os resultados
Obtenha o nome do grupo de recursos do Azure.
resource_group_name=$(terraform output -raw resource_group_name)Obtenha o nome do serviço.
api_management_service_name=$(terraform output -raw api_management_service_name)Execute az apim show para exibir informações sobre o novo serviço.
az apim show --resource-group $resource_group_name \ --name $api_management_service_name
Limpar os recursos
Quando você não precisar mais dos recursos criados por meio o Terraform, execute as seguintes etapas:
Execute plano do terraform e especifique o sinalizador
destroy.terraform plan -destroy -out main.destroy.tfplanPontos-chave:
- O comando
terraform plancria um plano de execução, mas não o executa. Em vez disso, ele determina quais ações são necessárias para criar a configuração especificada em seus arquivos de configuração. Esse padrão permite que você verifique se o plano de execução corresponde às suas expectativas antes de fazer qualquer alteração nos recursos reais. - O parâmetro opcional
-outpermite que você especifique um arquivo de saída para o plano. Usar o parâmetro-outgarante que o plano que você examinou seja exatamente o que é aplicado.
- O comando
Execute terraform apply para aplicar o plano de execução.
terraform apply main.destroy.tfplan
Solucionar problemas do Terraform no Azure
Solucionar problemas comuns ao usar o Terraform no Azure