Guia de início rápido: criar um perfil de CDN do Azure e um ponto de extremidade usando o Terraform
Importante
O Azure CDN Standard da Microsoft (clássico) será desativado em 30 de setembro de 2027. Para evitar qualquer interrupção do serviço, é importante migrar seus perfis CDN Standard do Azure da Microsoft (clássicos) para a camada Azure Front Door Standard ou Premium até 30 de setembro de 2027. Para obter mais informações, consulte Azure CDN Standard da aposentadoria (clássica) da Microsoft.
A CDN do Azure de Edgio foi aposentada em 15 de janeiro de 2025. Para obter mais informações, consulte CDN do Azure das Perguntas frequentes sobre aposentadoria do Edgio.
Este artigo mostra como usar o Terraform para criar um perfil CDN do Azure e um ponto de extremidade usando o Terraform.
Terraform permite a definição, visualização e implantação de infraestrutura em nuvem. Usando Terraform, você cria arquivos de configuração usando a sintaxe HCL. A sintaxe HCL permite especificar o provedor de nuvem - como o Azure - e os elementos que compõem sua infraestrutura de nuvem. Depois de criar os arquivos de configuração, você cria um plano de execução que permite visualizar as alterações na infraestrutura antes que elas sejam implantadas. Depois de verificar as alterações, você aplica o plano de execução para implantar a infraestrutura.
Neste artigo, vai aprender a:
- Crie 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
- Crie uma cadeia de caracteres aleatória para o nome do ponto de extremidade CDN usando random_string
- Criar um perfil de CDN do Azure usando azurerm_cdn_profile
- Criar um ponto de extremidade CDN do Azure usando azurerm_cdn_endpoint
Pré-requisitos
Implementar o código Terraform
Nota
O código de exemplo para este artigo está localizado no repositório GitHub do Azure Terraform. Você pode visualizar o arquivo de log que contém os resultados do teste das versões atual e anterior 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 Terraform de exemplo e torná-lo o diretório atual.
Crie um arquivo chamado
main.tf
e 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" "aazurerm_cdn_profile_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_cdn_profile" "profile" { name = "profile-${random_string.azurerm_cdn_endpoint_name.result}" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name sku = var.cdn_sku } resource "random_string" "azurerm_cdn_endpoint_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_cdn_endpoint" "endpoint" { name = "endpoint-${random_string.azurerm_cdn_endpoint_name.result}" profile_name = azurerm_cdn_profile.profile.name location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name is_http_allowed = true is_https_allowed = true querystring_caching_behaviour = "IgnoreQueryString" is_compression_enabled = true content_types_to_compress = [ "application/eot", "application/font", "application/font-sfnt", "application/javascript", "application/json", "application/opentype", "application/otf", "application/pkcs7-mime", "application/truetype", "application/ttf", "application/vnd.ms-fontobject", "application/xhtml+xml", "application/xml", "application/xml+rss", "application/x-font-opentype", "application/x-font-truetype", "application/x-font-ttf", "application/x-httpd-cgi", "application/x-javascript", "application/x-mpegurl", "application/x-opentype", "application/x-otf", "application/x-perl", "application/x-ttf", "font/eot", "font/ttf", "font/otf", "font/opentype", "image/svg+xml", "text/css", "text/csv", "text/html", "text/javascript", "text/js", "text/plain", "text/richtext", "text/tab-separated-values", "text/xml", "text/x-script", "text/x-component", "text/x-java-source", ] origin { name = "origin1" host_name = var.origin_url } }
Crie um arquivo chamado
outputs.tf
e insira o seguinte código:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "cdn_profile_name" { value = azurerm_cdn_profile.profile.name } output "cdn_endpoint_endpoint_name" { value = azurerm_cdn_endpoint.endpoint.name } output "cdn_endpoint_fqdn" { value = azurerm_cdn_endpoint.endpoint.fqdn }
Crie um arquivo chamado
providers.tf
e insira o seguinte código:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Crie um arquivo chamado
variables.tf
e insira o seguinte código:variable "resource_group_location" { type = string description = "Location for all resources." default = "eastus" } variable "resource_group_name_prefix" { type = string description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." default = "rg" } variable "origin_url" { type = string description = "Url of the origin." default = "www.contoso.com" } variable "cdn_sku" { type = string description = "CDN SKU names." default = "Standard_Microsoft" validation { condition = contains(["Standard_Akamai", "Standard_Microsoft", "Standard_Verizon", "Premium_Verizon"], var.cdn_sku) error_message = "The cdn_sku must be one of the following: Standard_Akamai, Standard_Microsoft, Standard_Verizon, Premium_Verizon." } }
Inicializar o Terraform
Execute terraform init para inicializar a implantação do Terraform. Este comando baixa o provedor do Azure necessário para gerenciar seus recursos do Azure.
terraform init -upgrade
Pontos principais:
- O
-upgrade
parâmetro atualiza os plug-ins de provedor necessários para a versão mais recente que está em conformidade com as restrições de versão da configuração.
Criar um plano de execução do Terraform
Execute o plano de terraforma para criar um plano de execução.
terraform plan -out main.tfplan
Pontos principais:
- O
terraform plan
comando cria 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 quaisquer alterações nos recursos reais. - O parâmetro opcional
-out
permite especificar um arquivo de saída para o plano. O uso do-out
parâmetro garante que o plano revisado seja exatamente o que é aplicado.
Aplicar um plano de execução Terraform
Execute terraform apply para aplicar o plano de execução à sua infraestrutura de nuvem.
terraform apply main.tfplan
Pontos principais:
- O comando de exemplo
terraform apply
pressupõe que você executouterraform plan -out main.tfplan
anteriormente o . - Se você especificou um nome de arquivo diferente para o
-out
parâmetro, use esse mesmo nome de arquivo na chamada paraterraform apply
. - Se você não usou o
-out
parâmetro, ligueterraform apply
sem nenhum parâmetro.
Verificar os resultados
Obtenha o nome do grupo de recursos do Azure no qual o perfil da CDN do Azure e o ponto de extremidade foram criados.
resource_group_name=$(terraform output -raw resource_group_name)
Obtenha o nome do perfil CDN.
cdn_profile_name=$(terraform output -raw cdn_profile_name)
Obtenha o nome do ponto de extremidade CDN.
cdn_endpoint_endpoint_name=$(terraform output -raw cdn_endpoint_endpoint_name)
Execute az cdn custom-domain show para mostrar detalhes do domínio personalizado que você criou neste artigo.
az cdn endpoint show --resource-group $resource_group_name \ --profile-name $cdn_profile_name \ --name $cdn_endpoint_endpoint_name
Clean up resources (Limpar recursos)
Quando você não precisar mais dos recursos criados via Terraform, execute as seguintes etapas:
Execute o plano de terraforma e especifique o
destroy
sinalizador.terraform plan -destroy -out main.destroy.tfplan
Pontos principais:
- O
terraform plan
comando cria 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 quaisquer alterações nos recursos reais. - O parâmetro opcional
-out
permite especificar um arquivo de saída para o plano. O uso do-out
parâmetro garante que o plano revisado seja exatamente o que é aplicado.
- O
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