Snabbstart: Skapa en Azure CDN-profil och slutpunkt med Terraform
Viktigt!
Azure CDN Standard från Microsoft (klassisk) dras tillbaka den 30 september 2027. För att undvika avbrott i tjänsten är det viktigt att du migrerar dina Azure CDN Standard-profiler från Microsofts (klassiska) profiler till Azure Front Door Standard- eller Premium-nivån senast den 30 september 2027. Mer information finns i Azure CDN Standard från Microsoft (klassisk) tillbakadragning.
Azure CDN från Edgio drogs tillbaka den 15 januari 2025. Mer information finns i Azure CDN från vanliga frågor och svar om Edgio-pensionering.
Den här artikeln visar hur du använder Terraform för att skapa en Azure CDN-profil och -slutpunkt med Terraform.
Terraform möjliggör definition, förhandsversion och distribution av molninfrastruktur. Med Terraform skapar du konfigurationsfiler med hjälp av HCL-syntax. Med HCL-syntaxen kan du ange molnleverantören – till exempel Azure – och de element som utgör din molninfrastruktur. När du har skapat konfigurationsfilerna skapar du en körningsplan som gör att du kan förhandsgranska ändringarna i infrastrukturen innan de distribueras. När du har verifierat ändringarna tillämpar du körningsplanen för att distribuera infrastrukturen.
I den här artikeln kan du se hur du:
- Skapa ett slumpmässigt husdjursnamn för Azure-resursgruppens namn med hjälp av random_pet
- Skapa en Azure-resursgrupp med hjälp av azurerm_resource_group
- Skapa en slumpmässig sträng för CDN-slutpunktens namn med hjälp av random_string
- Skapa en Azure CDN-profil med hjälp av azurerm_cdn_profile
- Skapa en Azure CDN-slutpunkt med azurerm_cdn_endpoint
Förutsättningar
Implementera Terraform-koden
Kommentar
Exempelkoden för den här artikeln finns på Azure Terraform GitHub-lagringsplatsen. Du kan visa loggfilen som innehåller testresultaten från aktuella och tidigare versioner av Terraform.
Se fler artiklar och exempelkod som visar hur du använder Terraform för att hantera Azure-resurser
Skapa en katalog där du kan testa och köra Terraform-exempelkoden och göra den till den aktuella katalogen.
Skapa en fil med namnet
main.tf
och infoga följande kod: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 } }
Skapa en fil med namnet
outputs.tf
och infoga följande kod: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 }
Skapa en fil med namnet
providers.tf
och infoga följande kod:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Skapa en fil med namnet
variables.tf
och infoga följande kod: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." } }
Initiera Terraform
Kör terraform init för att initiera Terraform-distributionen. Det här kommandot laddar ned den Azure-provider som krävs för att hantera dina Azure-resurser.
terraform init -upgrade
Viktiga punkter:
- Parametern
-upgrade
uppgraderar nödvändiga provider-plugin-program till den senaste versionen som uppfyller konfigurationens versionsbegränsningar.
Skapa en Terraform-körningsplan
Kör terraform-planen för att skapa en körningsplan.
terraform plan -out main.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en körningsplan, men kör den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körningsplanen matchar dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria
-out
parametern kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att planen du granskade är exakt vad som tillämpas.
Tillämpa en Terraform-körningsplan
Kör terraform gäller för att tillämpa körningsplanen på din molninfrastruktur.
terraform apply main.tfplan
Viktiga punkter:
-
terraform apply
Exempelkommandot förutsätter att du tidigare kördeterraform plan -out main.tfplan
. - Om du har angett ett annat filnamn för parametern
-out
använder du samma filnamn i anropet tillterraform apply
. - Om du inte använde parametern
-out
anroparterraform apply
du utan några parametrar.
Verifiera resultatet
Hämta namnet på Azure-resursgruppen där Azure CDN-profilen och slutpunkten skapades.
resource_group_name=$(terraform output -raw resource_group_name)
Hämta CDN-profilnamnet.
cdn_profile_name=$(terraform output -raw cdn_profile_name)
Hämta CDN-slutpunktsnamnet.
cdn_endpoint_endpoint_name=$(terraform output -raw cdn_endpoint_endpoint_name)
Kör az cdn custom-domain show för att visa information om den anpassade domän som du skapade i den här artikeln.
az cdn endpoint show --resource-group $resource_group_name \ --profile-name $cdn_profile_name \ --name $cdn_endpoint_endpoint_name
Rensa resurser
Gör följande när du inte längre behöver de resurser som skapats via Terraform:
Kör terraform-plan och ange
destroy
flaggan.terraform plan -destroy -out main.destroy.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en körningsplan, men kör den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körningsplanen matchar dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria
-out
parametern kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att planen du granskade är exakt vad som tillämpas.
- Kommandot
Kör terraform tillämpa för att tillämpa körningsplanen.
terraform apply main.destroy.tfplan
Felsöka Terraform i Azure
Felsöka vanliga problem när du använder Terraform i Azure