Schnellstart: Bereitstellen von Azure Spring Apps mithilfe von Terraform
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von drei Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Plan Standardverbrauch und dediziert gilt ab dem 30. September 2024 als veraltet und wird nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren des Plans „Standardverbrauch und dediziert“ von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für:❌ Basic ✔️ Standard ✔️ Enterprise
In dieser Schnellstartanleitung wird beschrieben, wie Sie mithilfe von Terraform einen Azure Spring Apps-Cluster in einem vorhandenen virtuellen Netzwerk bereitstellen.
Mit Azure Spring Apps lassen sich Spring-Anwendungen ganz einfach und ohne Codeänderungen in Azure bereitstellen. Der Dienst verwaltet die Infrastruktur von Spring-Anwendungen und ermöglicht es Entwicklern dadurch, sich auf ihren Code zu konzentrieren. Azure Spring Apps bietet eine Lebenszyklusverwaltung mit umfassender Überwachung und Diagnose, Konfigurationsverwaltung, Dienstermittlung, CI/CD-Integration, Blau/Grün-Bereitstellungen und mehr.
Der Enterprise-Bereitstellungsplan umfasst die folgenden Tanzu-Komponenten:
- Buildservice
- Anwendungskonfigurationsdienst
- Dienstregistrierung
- Spring Cloud Gateway
- API-Portal
Die API-Portalkomponente wird eingeschlossen, wenn sie über den AzureRM Terraform-Anbieter zur Verfügung gestellt wird.
Weitere Anpassungen, einschließlich Unterstützung benutzerdefinierter Domänen, finden Sie in der Dokumentation zum Azure Spring Apps-Terraform-Anbieter.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie kein Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
- Hashicorp Terraform
- Zwei dedizierte Subnetze für den Azure Spring Apps-Cluster: eines für die Dienstruntime und ein weiteres für die Spring-Anwendungen. Die Anforderungen an Subnetze und virtuelle Netzwerke finden Sie im Abschnitt Anforderungen für virtuelle Netzwerke des Artikels Bereitstellen von Azure Spring Apps in einem virtuellen Netzwerk.
- Ein vorhandener Log Analytics-Arbeitsbereich für Azure Spring Apps-Diagnoseeinstellungen und eine arbeitsbereichsbasierte Application Insights-Ressource. Weitere Informationen finden Sie unter Analysieren von Protokollen und Metriken mit Diagnoseeinstellungen und Java-In-Process-Agent für Application Insights in Azure Spring Apps.
- Drei interne CIDR-Bereiche (Classless Inter-Domain Routing) (mindestens jeweils /16), die Sie für die Verwendung durch den Azure Spring Apps-Cluster festgelegt haben. Diese CIDR-Bereiche sind nicht direkt routingfähig und werden nur intern vom Azure Spring Apps-Cluster verwendet. Cluster dürfen 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16 und 192.0.2.0/24 nicht als interne CIDR-Bereiche für Azure Spring Apps verwenden. Cluster dürfen auch keine IP-Adressbereiche verwenden, die im Adressbereich des virtuellen Clusternetzwerks enthalten sind.
- Dienstberechtigung, die dem virtuellen Netzwerk erteilt wurde. Der Azure Spring Apps-Ressourcenanbieter erfordert die Berechtigungen
User Access Administrator
undNetwork Contributor
für Ihr virtuelles Netzwerk, damit ein dedizierter und dynamischer Dienstprinzipal im virtuellen Netzwerk für die weitere Bereitstellung und Wartung gewährt werden kann. Anweisungen und weitere Informationen finden Sie im Abschnitt Erteilen der Dienstberechtigung für das virtuelle Netzwerk des Artikels Bereitstellen von Azure Spring Apps in einem virtuellen Netzwerk. - Wenn Sie Azure Firewall oder ein virtuelles Netzwerkgerät (Network Virtual Appliance, NVA) verwenden, müssen Sie auch die folgenden Voraussetzungen erfüllen:
- Regeln für Netzwerk- und vollqualifizierte Domänennamen (Fully Qualified Domain Name, FQDN). Weitere Informationen finden Sie unter Anforderungen für virtuelle Netzwerke.
- Eine eindeutige benutzerdefinierte Route (User Defined Route, UDR), die auf die einzelnen Subnetze der Dienstruntime und der Spring-Anwendung angewendet wird. Weitere Informationen zum UDRs finden Sie unter Routing von Datenverkehr für virtuelle Netzwerke. Die UDR sollte mit einer Route für 0.0.0.0/0 mit einem Ziel Ihres NVA konfiguriert werden, bevor der Azure Spring Apps-Cluster bereitgestellt wird. Weitere Informationen finden Sie im Abschnitt Eigene Routingtabelle verwenden des Artikels Bereitstellen von Azure Spring Apps in einem virtuellen Netzwerk.
- Wenn Sie eine Instanz des Azure Spring Apps Enterprise-Plans zum ersten Mal im Zielabonnement bereitstellen, finden Sie Informationen hierzu im Abschnitt Voraussetzungen des Enterprise-Plans in Azure Marketplace.
Überprüfen des Terraform-Plans
Die in dieser Schnellstartanleitung verwendete Konfigurationsdatei stammt aus der Azure Spring Apps-Referenzarchitektur.
# Azure provider version
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "= 3.21.1"
}
}
}
provider "azurerm" {
features {}
}
### Create Resource group
resource "azurerm_resource_group" "sc_corp_rg" {
name = var.resource_group_name
location = var.location
}
### Create Application Insights
resource "azurerm_application_insights" "sc_app_insights" {
name = var.app_insights_name
location = var.location
resource_group_name = var.resource_group_name
application_type = "web"
workspace_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.OperationalInsights/workspaces/${var.sc_law_id}"
depends_on = [azurerm_resource_group.sc_corp_rg]
}
### Create Spring Cloud Service
resource "azurerm_spring_cloud_service" "sc" {
name = var.sc_service_name
resource_group_name = var.resource_group_name
location = var.location
sku_name = "S0"
network {
app_subnet_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.Network/virtualNetworks/${var.vnet_spoke_name}/subnets/${var.app_subnet_id}"
service_runtime_subnet_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.Network/virtualNetworks/${var.vnet_spoke_name}/subnets/${var.service_runtime_subnet_id}"
cidr_ranges = var.sc_cidr
}
timeouts {
create = "60m"
delete = "2h"
}
depends_on = [azurerm_resource_group.sc_corp_rg]
tags = var.tags
}
### Update Diags setting for Spring Cloud Service
resource "azurerm_monitor_diagnostic_setting" "sc_diag" {
name = "monitoring"
target_resource_id = azurerm_spring_cloud_service.sc.id
log_analytics_workspace_id = "/subscriptions/${var.subscription}/resourceGroups/${var.azurespringcloudvnetrg}/providers/Microsoft.OperationalInsights/workspaces/${var.sc_law_id}"
log {
category = "ApplicationConsole"
enabled = true
retention_policy {
enabled = false
}
}
metric {
category = "AllMetrics"
retention_policy {
enabled = false
}
}
}
Anwenden des Terraform-Plans
Führen Sie die folgenden Schritte aus, um den Terraform-Plan anzuwenden:
Speichern Sie die Datei variables.tf für den Standard-Plan oder den Enterprise-Plan lokal, und öffnen Sie sie dann in einem Editor.
Bearbeiten Sie die Datei, und fügen Sie ihr folgende Werte hinzu:
Abonnement-ID des Azure-Kontos, in dem Sie die Bereitstellung durchführen
Bereitstellungsstandort aus den Regionen, in denen Azure Spring Apps verfügbar ist (siehe Verfügbare Produkte nach Region). Sie benötigen die Kurzform des Standortnamens. Verwenden Sie zum Abrufen dieses Werts den folgenden Befehl, um eine Liste von Azure-Standorten zu generieren, und suchen Sie dann nach dem Wert für Name für die von Ihnen ausgewählte Region.
az account list-locations --output table
Bearbeiten Sie die Datei, um die folgenden neuen Bereitstellungsinformationen hinzuzufügen:
- Name der Ressourcengruppe, in der Sie die Bereitstellung durchführen
- Name Ihrer Wahl für die Azure Spring Apps-Bereitstellung
- Name Ihrer Wahl für die Application Insights-Ressource
- Drei CIDR-Bereiche (vom Typ „/16“ oder größer), die zum Hosten der Azure Spring Apps-Back-End-Infrastruktur verwendet werden. Die CIDR-Bereiche dürfen sich nicht mit vorhandenen CIDR-Bereichen im Zielsubnetz überschneiden.
- Schlüssel-Wert-Paare, die als Tags auf alle Ressourcen angewendet werden sollen, die Tags unterstützen. Unter Verwenden von Tags zum Organisieren von Azure-Ressourcen und Verwaltungshierarchie erhalten Sie weitere Informationen.
Bearbeiten Sie die Datei, um die folgenden vorhandenen Infrastrukturinformationen hinzuzufügen:
- Name der Ressourcengruppe, in der sich das vorhandene virtuelle Netzwerk befindet
- Name des virtuellen Netzwerks des vorhandenen Bereichs
- Name des vorhandenen Subnetzes, das vom Azure Spring Apps-Anwendungsdienst verwendet werden soll
- Name des vorhandenen Subnetzes, das vom Azure Spring Apps-Laufzeitdienst verwendet werden soll
- Name des Azure Log Analytics-Arbeitsbereichs
Führen Sie den folgenden Befehl aus, um die Terraform-Module zu initialisieren:
terraform init
Führen Sie den folgenden Befehl aus, um den Terraform-Bereitstellungsplan zu initialisieren:
terraform plan -out=springcloud.plan
Führen Sie den folgenden Befehl aus, um den Terraform-Bereitstellungsplan anzuwenden:
terraform apply springcloud.plan
Überprüfen der bereitgestellten Ressourcen
Sie können entweder das Azure-Portal nutzen, um die bereitgestellten Ressourcen zu überprüfen, oder Azure CLI oder ein Azure PowerShell-Skript, um die bereitgestellten Ressourcen aufzulisten.
Bereinigen von Ressourcen
Falls Sie mit weiteren Schnellstartanleitungen und Tutorials fortfahren möchten, sollten Sie die Ressourcen nicht bereinigen. Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr benötigen, löschen Sie sie mithilfe des folgenden Befehls:
terraform destroy -auto-approve
Nächste Schritte
In dieser Schnellstartanleitung haben Sie mithilfe von Terraform eine Azure Spring Apps-Instanz in einem vorhandenen virtuellen Netzwerk bereitgestellt und die Bereitstellung überprüft. Weitere Informationen zu Azure Spring Apps finden Sie in den folgenden Ressourcen.
- Stellen Sie eine der folgenden Beispielanwendungen an den folgenden Speicherorten bereit:
- Verwenden Sie benutzerdefinierte Domänen mit Azure Spring Apps.
- Machen Sie Anwendungen in Azure Spring Apps mithilfe von Azure Application Gateway für das Internet verfügbar. Weitere Informationen finden Sie in Verfügbarmachen von Anwendungen mit End-to-End-TLS in einem virtuellen Netzwerk.
- Zeigen Sie die sichere Azure Spring Apps-Referenzarchitektur (End-to-End-Architektur) an, die auf dem Microsoft Azure Well-Architected Framework basiert.