Schnellstart: Bereitstellen von Azure Spring Apps mithilfe einer ARM-Vorlage
Hinweis
Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.
Dieser Artikel gilt für:❌ Basic ✔️ Standard ✔️ Enterprise
In dieser Schnellstartanleitung wird beschrieben, wie Sie eine Azure Resource Manager-Vorlage (ARM-Vorlage) verwenden, um einen Azure Spring Apps-Cluster in einem vorhandenen virtuellen Netzwerk bereitzustellen.
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
- Application Accelerator
- Anwendungsliveansicht
Eine Azure Resource Manager-Vorlage ist eine JSON-Datei (JavaScript Object Notation), die die Infrastruktur und die Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zu schreiben, mit denen die Bereitstellung erstellt wird.
Voraussetzungen
Ein Azure-Abonnement. Wenn Sie kein Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
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 Berechtigung „Besitzer“ 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 der Vorlage
Die in dieser Schnellstartanleitung verwendeten Vorlagen stammen aus der Azure Spring Apps-Referenzarchitektur.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"springCloudInstanceName": {
"type": "string",
"metadata": {
"description": "The instance name of the Azure Spring Cloud resource"
}
},
"appInsightsName": {
"type": "string",
"metadata": {
"description": "The name of the Application Insights instance for Azure Spring Cloud"
}
},
"laWorkspaceResourceId": {
"type": "string",
"metadata": {
"description": "The resource ID of the existing Log Analytics workspace. This will be used for both diagnostics logs and Application Insights"
}
},
"springCloudAppSubnetID": {
"type": "string",
"metadata": {
"description": "The resourceID of the Azure Spring Cloud App Subnet"
}
},
"springCloudRuntimeSubnetID": {
"type": "string",
"metadata": {
"description": "The resourceID of the Azure Spring Cloud Runtime Subnet"
}
},
"springCloudServiceCidrs": {
"type": "string",
"defaultValue": "10.0.0.0/16,10.2.0.0/16,10.3.0.1/16",
"metadata": {
"description": "Comma-separated list of IP address ranges in CIDR format. The IP ranges are reserved to host underlying Azure Spring Cloud infrastructure, which should be 3 at least /16 unused IP ranges, must not overlap with any Subnet IP ranges"
}
},
"tags": {
"type": "object",
"metadata": {
"description": "The tags that will be associated to the Resources"
},
"defaultValue": {
"environment": "lab"
}
}
},
"variables": {
"location": "[resourceGroup().location]"
},
"resources": [
{
"type": "Microsoft.Insights/components",
"name": "[parameters('appInsightsName')]",
"apiVersion": "2020-02-02",
"location": "[variables('location')]",
"tags": "[parameters('tags')]",
"properties": {
"Application_Type": "web",
"ApplicationId": "[parameters('appInsightsName')]",
"Flow_Type": "Bluefield",
"Request_Source": "rest",
"WorkspaceResourceId": "[parameters('laWorkspaceResourceId')]"
}
},
{
"apiVersion": "2022-03-01-preview",
"name": "[parameters('springCloudInstanceName')]",
"location": "[variables('location')]",
"tags": "[parameters('tags')]",
"dependsOn": [
"[resourceId('Microsoft.Insights/components', parameters('appInsightsName'))]"
],
"type": "Microsoft.AppPlatform/Spring",
"sku": {
"name": "E0",
"tier": "Enterprise"
},
"properties": {
"networkProfile": {
"serviceCidr": "[parameters('springCloudServiceCidrs')]",
"serviceRuntimeSubnetId": "[parameters('springCloudRuntimeSubnetID')]",
"appSubnetId": "[parameters('springCloudAppSubnetID')]"
}
},
"resources": [
{
"type": "serviceRegistries",
"name": "default",
"apiVersion": "2022-03-01-preview",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
]
},
{
"type": "configurationServices",
"name": "default",
"apiVersion": "2022-03-01-preview",
"location": "[variables('location')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
]
},
{
"type": "gateways",
"name": "default",
"apiVersion": "2022-03-01-preview",
"location": "[variables('location')]",
"sku": {
"name": "E0",
"tier": "Enterprise",
"capacity": 2
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
]
},
{
"type": "apiPortals",
"name": "default",
"apiVersion": "2022-03-01-preview",
"location": "[variables('location')]",
"sku": {
"name": "E0",
"tier": "Enterprise",
"capacity": 1
},
"properties": {
"gatewayIds": [
"[concat(resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName')), '/gateways/default')]"
]
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
]
},
{
"type": "Microsoft.AppPlatform/Spring/buildServices/agentPools",
"name": "[concat(parameters('springCloudInstanceName'), '/default/default')]",
"apiVersion": "2022-03-01-preview",
"location": "[variables('location')]",
"properties": {
"poolSize": {
"name": "S1"
}
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
]
}
]
},
{
"apiVersion": "2022-03-01-preview",
"name": "[concat(parameters('springCloudInstanceName'), '/default/default/default')]",
"type": "Microsoft.AppPlatform/Spring/buildservices/builders/buildpackBindings",
"properties": {
"bindingType": "ApplicationInsights",
"launchProperties": {
"properties": {
"sampling_percentage": 10,
"connection_string": "[reference(concat('microsoft.insights/components/', parameters('appInsightsName')), '2015-05-01').ConnectionString]"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springCloudInstanceName'))]"
]
},
{
"type": "Microsoft.AppPlatform/Spring/providers/diagnosticSettings",
"name": "[concat(parameters('springCloudInstanceName'), '/Microsoft.Insights/monitoring')]",
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring/', parameters('springCloudInstanceName'))]"
],
"apiVersion": "2017-05-01-preview",
"properties": {
"name": "monitoring",
"workspaceId": "[parameters('laWorkspaceResourceId')]",
"logs": [
{
"category": "ApplicationConsole",
"enabled": true,
"retentionPolicy": {
"days": 30,
"enabled": false
}
}
]
}
}
],
"outputs": {
}
}
Zwei Azure-Ressourcen sind in der Vorlage definiert:
- Microsoft.AppPlatform/Spring: Erstellen einer Azure Spring Apps-Instanz
- Microsoft.Insights/components: Erstellen eines Application Insights-Arbeitsbereichs.
Bereitstellen der Vorlage
Führen Sie die folgenden Schritte aus, um die Vorlage bereitzustellen.
Wählen Sie zunächst das folgende Bild aus, um sich bei Azure anzumelden und eine Vorlage zu öffnen. Die Vorlage erstellt eine Azure Spring Apps-Instanz in einer vorhandenen Virtual Network-Instanz und eine arbeitsbereichsbasierte Application Insights-Instanz in einem vorhandenen Azure Monitor Log Analytics-Arbeitsbereich.
Geben Sie als Nächstes Werte für die folgenden Felder ein:
- Ressourcengruppe: Wählen Sie die Option Neu erstellen aus, geben Sie einen eindeutigen Namen für die Ressourcengruppe ein, und wählen Sie dann OK aus.
- springCloudInstanceName: Geben Sie den Namen der Azure Spring Apps-Ressource ein.
- appInsightsName: Geben Sie den Namen der Application Insights-Instanz für Azure Apps Cloud ein.
- laWorkspaceResourceId: Geben Sie die Ressourcen-ID des vorhandenen Log Analytics-Arbeitsbereichs ein (z. B. / subscriptions/<Ihr Abonnement>/resourcegroups/<Ihre Log Analytics-Ressourcengruppe>/providers/Microsoft.OperationalInsights/workspaces/<Name Ihres Log Analytics-Arbeitsbereichs>.)
- springCloudAppSubnetID: Geben Sie die Ressourcen-ID des Azure Spring Apps-Anwendungssubnetzes ein.
- springCloudRuntimeSubnetID: Geben Sie die Ressourcen-ID des Azure Spring Apps-Runtimesubnetzes ein.
- springCloudServiceCidrs: Geben Sie eine durch Kommas getrennte Liste von IP-Adressbereichen (insgesamt drei) im CIDR-Format ein. Die IP-Adressbereiche sind zum Hosten der zugrunde liegenden Azure Spring Apps-Infrastruktur reserviert. Diese drei Bereiche müssen nicht verwendete IP-Adressbereiche vom Typ /16 (oder größer) sein und dürfen sich nicht mit routingfähigen Subnetz-IP-Bereichen überschneiden, die im Netzwerk verwendet werden.
- tags: Geben Sie benutzerdefinierte Tags ein.
Wählen Sie abschließend Überprüfen und erstellen und dann Erstellen aus.
Ü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 Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe. Dadurch werden die Ressourcen in der Ressourcengruppe gelöscht. Wenn Sie die Ressourcengruppe mit der Azure CLI oder Azure PowerShell löschen möchten, verwenden Sie die folgenden Befehle:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Nächste Schritte
In dieser Schnellstartanleitung haben Sie mithilfe einer ARM-Vorlage eine Azure Spring Apps-Instanz in einem vorhandenen virtuellen Netzwerk bereitgestellt und die Bereitstellung überprüft. Weitere Informationen zu Azure Spring Apps und zum Azure Resource Manager 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.
- Hier finden Sie weitere Informationen zum Azure-Ressourcen-Manager.