Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Azure CDN Standard von Microsoft (klassisch) wird am 30. September 2027 eingestellt. Um Dienstunterbrechungen zu vermeiden, ist es wichtig, dass Sie Ihre Azure CDN Standard-Profile von Microsoft (klassischen) Profilen bis zum 30. September 2027 zu Azure Front Door Standard oder Premium-Stufe migrieren. Weitere Informationen finden Sie unter Einstellung von Azure CDN Standard von Microsoft (klassisch).
Azure CDN von Edgio wurde am 15. Januar 2025 eingestellt. Weitere Informationen finden Sie in der FAQ zum Ruhestand von Azure CDN von Edgio.
In diesem Artikel wird gezeigt, wie Terraform zum Erstellen eines Azure CDN-Profils und eines Endpunkts mithilfe von Terraform verwendet wird.
Terraform ermöglicht die Definition, Vorschau und Bereitstellung der Cloudinfrastruktur. Mithilfe von Terraform erstellen Sie Konfigurationsdateien mit der HCL-Syntax. Mit der HCL-Syntax können Sie den Cloudanbieter (beispielsweise Azure) und die Elemente angeben, aus denen sich Ihre Cloudinfrastruktur zusammensetzt. Nachdem Sie Ihre Konfigurationsdateien erstellt haben, erstellen Sie einen Ausführungsplan , mit dem Sie eine Vorschau ihrer Infrastrukturänderungen anzeigen können, bevor sie bereitgestellt werden. Nach der Überprüfung der Änderungen wenden Sie den Ausführungsplan an, um die Infrastruktur bereitzustellen.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Erstellen eines zufälligen Haustiernamens für den Azure-Ressourcengruppennamen mithilfe von random_pet
- Erstellen einer Azure-Ressourcengruppe mithilfe von azurerm_resource_group
- Erstellen einer zufälligen Zeichenfolge für den CDN-Endpunktnamen mithilfe von random_string
- Erstellen eines Azure CDN-Profils mithilfe von azurerm_cdn_profile
- Erstellen eines Azure CDN-Endpunkts mithilfe von azurerm_cdn_endpoint
Voraussetzungen
Implementieren des Terraform-Codes
Hinweis
Der Beispielcode für diesen Artikel befindet sich im Azure Terraform GitHub-Repository. Sie können die Protokolldatei anzeigen, die die Testergebnisse aus den aktuellen und früheren Versionen von Terraform enthält.
Sehen Sie sich weitere Artikel und Beispielcode an, die zeigen, wie Terraform zur Verwaltung von Azure-Ressourcen verwendet wird
Erstellen Sie ein Verzeichnis, in dem der Terraform-Beispielcode getestet und ausgeführt werden soll, und legen Sie es als aktuelles Verzeichnis fest.
Erstellen Sie eine Datei namens
main.tf, und fügen Sie den folgenden Code ein: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 } }Erstellen Sie eine Datei namens
outputs.tf, und fügen Sie den folgenden Code ein: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 }Erstellen Sie eine Datei namens
providers.tf, und fügen Sie den folgenden Code ein:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Erstellen Sie eine Datei namens
variables.tf, und fügen Sie den folgenden Code ein: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." } }
Initialisieren von Terraform
Führen Sie terraform init aus, um die Terraform-Bereitstellung zu initialisieren. Mit diesem Befehl wird der Azure-Anbieter heruntergeladen, der zum Verwalten Ihrer Azure-Ressourcen erforderlich ist.
terraform init -upgrade
Wichtige Punkte:
- Der Parameter
-upgradeaktualisiert die erforderlichen Anbieter-Plug-Ins auf die neueste Version, die den Versionseinschränkungen der Konfiguration entspricht.
Erstellen eines Terraform-Ausführungsplans
Führen Sie terraform Plan aus, um einen Ausführungsplan zu erstellen.
terraform plan -out main.tfplan
Wichtige Punkte:
- Durch den Befehl
terraform planwird ein Ausführungsplan erstellt, aber nicht ausgeführt. Stattdessen werden die Aktionen ermittelt, die erforderlich sind, um die in Ihren Konfigurationsdateien angegebene Konfiguration zu erstellen. Mit diesem Muster können Sie überprüfen, ob der Ausführungsplan Ihren Erwartungen entspricht, bevor Sie Änderungen an den eigentlichen Ressourcen vornehmen. - Der optionale Parameter
-outermöglicht die Angabe einer Ausgabedatei für den Plan. Durch die Verwendung des Parameters-outwird sichergestellt, dass genau der von Ihnen überprüfte Plan angewendet wird.
Anwenden eines Terraform-Ausführungsplans
Führen Sie terraform aus , um den Ausführungsplan auf Ihre Cloudinfrastruktur anzuwenden.
terraform apply main.tfplan
Wichtige Punkte:
- Der Beispielbefehl
terraform applysetzt voraus, dass Sie zuvorterraform plan -out main.tfplanausgeführt haben. - Wenn Sie einen anderen Dateinamen für den Parameter
-outangegeben haben, verwenden Sie denselben Dateinamen im Aufruf vonterraform apply. - Wenn Sie den Parameter
-outnicht verwendet haben, rufen Sieterraform applyohne Parameter auf.
Überprüfen der Ergebnisse
Rufen Sie den Namen der Azure-Ressourcengruppe ab, in der das Azure CDN-Profil und der Azure CDN-Endpunkt erstellt wurden.
resource_group_name=$(terraform output -raw resource_group_name)Rufen Sie den Namen des CDN-Profils ab.
cdn_profile_name=$(terraform output -raw cdn_profile_name)Rufen Sie den Namen des CDN-Endpunkts ab.
cdn_endpoint_endpoint_name=$(terraform output -raw cdn_endpoint_endpoint_name)Führen Sie az cdn custom-domain show aus, um Details der benutzerdefinierten Domäne anzuzeigen, die Sie in diesem Artikel erstellt haben.
az cdn endpoint show --resource-group $resource_group_name \ --profile-name $cdn_profile_name \ --name $cdn_endpoint_endpoint_name
Bereinigen von Ressourcen
Wenn Sie die über Terraform erstellten Ressourcen nicht mehr benötigen, führen Sie die folgenden Schritte aus:
Führen Sie terraform plan aus, und geben Sie die
destroyKennzeichnung an.terraform plan -destroy -out main.destroy.tfplanWichtige Punkte:
- Durch den Befehl
terraform planwird ein Ausführungsplan erstellt, aber nicht ausgeführt. Stattdessen werden die Aktionen ermittelt, die erforderlich sind, um die in Ihren Konfigurationsdateien angegebene Konfiguration zu erstellen. Mit diesem Muster können Sie überprüfen, ob der Ausführungsplan Ihren Erwartungen entspricht, bevor Sie Änderungen an den eigentlichen Ressourcen vornehmen. - Der optionale Parameter
-outermöglicht die Angabe einer Ausgabedatei für den Plan. Durch die Verwendung des Parameters-outwird sichergestellt, dass genau der von Ihnen überprüfte Plan angewendet wird.
- Durch den Befehl
Führen Sie terraform apply aus, um den Ausführungsplan anzuwenden.
terraform apply main.destroy.tfplan
Problembehandlung für Terraform in Azure
Behandeln häufiger Probleme bei der Verwendung von Terraform in Azure