Vorbereiten einer Anwendung für die Bereitstellung in Azure Spring Apps
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 diesem Artikel wird gezeigt, wie Sie eine vorhandene Steeltoe-Anwendung für die Bereitstellung in Azure Spring Apps vorbereiten. Azure Spring Apps bietet robuste Dienste zum Hosten, Überwachen, Skalieren und Aktualisieren einer Steeltoe-App.
In diesem Artikel werden die Abhängigkeiten, die Konfiguration und der Code erläutert, die zum Ausführen einer .NET Core-Steeltoe-App in Azure Spring Apps erforderlich sind. Informationen zum Bereitstellen einer Anwendung in Azure Spring Apps finden Sie unter Bereitstellen Ihrer ersten Spring Boot-Anwendung in Azure Spring Apps.
Hinweis
Steeltoe-Unterstützung für Azure Spring Apps wird zurzeit als öffentliche Vorschau angeboten. Angebote der Public Preview ermöglichen Kunden das Experimentieren mit neuen Funktionen vor der offiziellen Veröffentlichung. Funktionen und Dienste in der Public Preview sind nicht zur Verwendung in der Produktion bestimmt. Weitere Informationen zur Unterstützung während der Vorschauphase finden Sie in den häufig gestellten Fragen. Sie können auch eine Supportanfrage einreichen.
Unterstützte Versionen
Azure Spring Apps unterstützt:
- .NET Core 3.1
- Steeltoe 2.4 und 3.0
Abhängigkeiten
Für Steeltoe 2.4 fügen Sie der Projektdatei das neueste Paket Microsoft.Azure.SpringCloud.Client 1.x.x hinzu:
<ItemGroup>
<PackageReference Include="Microsoft.Azure.SpringCloud.Client" Version="1.0.0-preview.1" />
<PackageReference Include="Steeltoe.Discovery.ClientCore" Version="2.4.4" />
<PackageReference Include="Steeltoe.Extensions.Configuration.ConfigServerCore" Version="2.4.4" />
<PackageReference Include="Steeltoe.Management.TracingCore" Version="2.4.4" />
<PackageReference Include="Steeltoe.Management.ExporterCore" Version="2.4.4" />
</ItemGroup>
Für Steeltoe 3.0 fügen Sie der Projektdatei das neueste Paket Microsoft.Azure.SpringCloud.Client 2.x.x hinzu:
<ItemGroup>
<PackageReference Include="Microsoft.Azure.SpringCloud.Client" Version="2.0.0-preview.1" />
<PackageReference Include="Steeltoe.Discovery.ClientCore" Version="3.0.0" />
<PackageReference Include="Steeltoe.Extensions.Configuration.ConfigServerCore" Version="3.0.0" />
<PackageReference Include="Steeltoe.Management.TracingCore" Version="3.0.0" />
</ItemGroup>
Program.cs aktualisieren
Rufen Sie in der Program.Main
-Methode die UseAzureSpringCloudService
-Methode auf.
Rufen Sie für Steeltoe 2.4.4 UseAzureSpringCloudService
nach ConfigureWebHostDefaults
und nach AddConfigServer
auf, sofern ein Aufruf erfolgt:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
Rufen Sie für Steeltoe 3.0.0 UseAzureSpringCloudService
vor ConfigureWebHostDefaults
und vor sonstigem Steeltoe-Konfigurationscode auf:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
Aktivieren der Eureka Server-Dienstermittlung
Hinweis
Eureka gilt nicht für den Enterprise-Plan. Wenn Sie den Enterprise-Plan verwenden, lesen Sie Verwenden der Dienstregistrierung.
Legen Sie in der Konfigurationsquelle, die bei der Ausführung der App in Azure Spring Apps verwendet wird, spring.application.name
auf denselben Namen fest wie die Azure Spring Apps-App, für die das Projekt bereitgestellt wird.
Wenn Sie z. B. ein .NET-Projekt mit dem Namen EurekaDataProvider
in einer Azure Spring Apps-App mit dem Namen planet-weather-provider
bereitstellen, muss die Datei appSettings.json den folgenden JSON-Code enthalten:
"spring": {
"application": {
"name": "planet-weather-provider"
}
}
Verwenden der Dienstermittlung
Um einen Dienst mithilfe der Eureka Server-Dienstermittlung aufzurufen, nehmen Sie HTTP-Anforderungen für http://<app_name>
vor, wobei app_name
der Wert spring.application.name
der Ziel-App ist. Mit dem folgenden Code wird beispielsweise der planet-weather-provider
-Dienst aufgerufen:
using (var client = new HttpClient(discoveryHandler, false))
{
var responses = await Task.WhenAll(
client.GetAsync("http://planet-weather-provider/weatherforecast/mercury"),
client.GetAsync("http://planet-weather-provider/weatherforecast/saturn"));
var weathers = await Task.WhenAll(from res in responses select res.Content.ReadAsStringAsync());
return new[]
{
new KeyValuePair<string, string>("Mercury", weathers[0]),
new KeyValuePair<string, string>("Saturn", weathers[1]),
};
}
In diesem Artikel wird gezeigt, wie Sie eine vorhandene Java Spring-Anwendung für die Bereitstellung in Azure Spring Apps vorbereiten. Bei ordnungsgemäßer Konfiguration bietet Azure Spring Apps stabile Dienste zur Überwachung, Skalierung und Aktualisierung Ihrer Java Spring-Anwendung.
Bevor Sie dieses Beispiel ausführen, können Sie den grundlegenden Schnellstart ausprobieren.
In anderen Beispielen wird erläutert, wie eine Anwendung in Azure Spring Apps bereitgestellt wird, wenn die POM-Datei konfiguriert ist.
In diesem Artikel werden die erforderlichen Abhängigkeiten erläutert und wie diese zur POM-Datei hinzugefügt werden.
Java Runtime-Version
Weitere Informationen finden Sie im Abschnitt Java-Runtime und Betriebssystemversionen der häufig gestellten Fragen (FAQ) zu Azure Spring Apps.
Spring Boot- and Spring Cloud-Versionen
Wenn Sie eine vorhandene Spring Boot-Anwendung für die Bereitstellung in Azure Spring Apps vorbereiten möchten, nehmen Sie die Abhängigkeiten von Spring Boot und Spring Cloud in die POM-Datei der Anwendung auf, wie in den folgenden Abschnitten gezeigt wird.
Azure Spring Apps unterstützt die neueste Spring Boot- oder Spring Cloud-Hauptversion ab 30 Tagen nach deren Veröffentlichung. Azure Spring Apps unterstützt die neuesten Nebenversionen, sobald diese veröffentlicht werden. Sie können unterstützte Spring Boot-Versionen von Spring Boot-Releases und Spring Cloud-Versionen von Spring Cloud-Releases erhalten.
Die folgende Tabelle enthält die unterstützten Spring Boot- und Spring Cloud-Kombinationen:
Spring Boot-Version | Spring Cloud-Version | Ende des kommerziellen Supports |
---|---|---|
3.2.x | 2023.0.x auch als Leyton bezeichnet | 2026-02-23 |
3.1.x | 2022.0.3 und höher, auch als Kilburn bezeichnet | 2025-08-18 |
3.0.x | 2022.0.3 und höher, auch als Kilburn bezeichnet | 2025-02-24 |
2.7.x | 2021.0.3 und höher, auch als Jubilee bezeichnet | 2025-08-24 |
2.6.x | 2021.0.3 und höher, auch als Jubilee bezeichnet | 2024-02-24 |
Weitere Informationen finden Sie auf den folgenden Seiten:
- Versionsunterstützung für Java, Spring Boot und mehr
- Spring Boot-Unterstützung
- Spring Cloud-Konfigurationsunterstützung
- Spring Cloud-Netflix-Unterstützung
- Hinzufügen von Spring Cloud zu einer vorhandenen Spring Boot-Anwendung
Weitere empfohlene Abhängigkeiten zum Aktivieren von Azure Spring Apps-Funktionen
Wenn Sie die integrierten Funktionen von Azure Spring Apps (von der Dienstregistrierung bis hin zur verteilten Ablaufverfolgung) aktivieren möchten, müssen Sie außerdem die folgenden Abhängigkeiten in Ihre Anwendung aufnehmen. Sie können einige dieser Abhängigkeiten löschen, wenn Sie keine entsprechenden Funktionen für die spezifischen Apps benötigen.
Dienstregistrierung
Schließen Sie die Abhängigkeit spring-cloud-starter-netflix-eureka-client
in die Datei pom.xml ein, um den verwalteten Dienst für die Azure-Dienstregistrierung zu verwenden:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Der Endpunkt des Dienstregistrierungsservers wird automatisch in Form von Umgebungsvariablen mit Ihrer App eingefügt. Anwendungen können sich selbst beim Dienstregistrierungsserver registrieren und andere abhängige Anwendungen ermitteln.
EnableDiscoveryClient-Anmerkung
Fügen Sie dem Quellcode der Anwendung die folgende Anmerkung hinzu.
@EnableDiscoveryClient
Informationen hierzu finden Sie beispielsweise in der piggymetrics-Anwendung aus früheren Beispielen:
package com.piggymetrics.gateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
Verteilte Konfiguration
Um die verteilte Konfiguration im Enterprise-Plan zu aktivieren, verwenden Sie den Anwendungskonfigurationsdienst für VMware-Tanzu, eine der proprietären VMware Tanzu-Komponenten. Der Anwendungskonfigurationsdienst für Tanzu ist in Kubernetes nativ und unterscheidet sich von Spring Cloud Config Server. Der Anwendungskonfigurationsdienst für Tanzu ermöglicht die Verwaltung von Kubernetes-nativen ConfigMap-Ressourcen, die aus Eigenschaften mit Daten aufgefüllt werden, die in mindestens einem Git-Repository definiert sind.
Im Enterprise-Plan gibt es keinen Spring Cloud Config Server, aber Sie können den Anwendungskonfigurationsdienst für Tanzu verwenden, um zentralisierte Konfigurationen zu verwalten. Weitere Informationen finden Sie unter Verwenden des Anwendungskonfigurationsdiensts für Tanzu.
Um den Anwendungskonfigurationsdienst für Tanzu zu verwenden, gehen Sie für jede Ihrer Apps wie folgt vor:
Fügen Sie eine explizite App-Bindung hinzu, um zu deklarieren, dass Ihre App den Anwendungskonfigurationsdienst für Tanzu verwenden muss.
Hinweis
Wenn Sie den Bindungsstatus ändern, müssen Sie die App neu starten oder erneut bereitstellen, damit die Änderung wirksam wird.
Legen Sie Konfigurationsmuster fest. Mithilfe von Konfigurationsdateimustern können Sie auswählen, welche Anwendung und welches Profil die App verwenden soll. Weitere Informationen finden Sie unter Verwenden des Anwendungskonfigurationsdiensts für Tanzu im Abschnitt Muster.
Eine weitere Möglichkeit besteht darin, die Konfigurationsdateimuster gleichzeitig mit Ihrer App-Bereitstellung festzulegen, wie im folgenden Beispiel gezeigt:
az spring app deploy \ --name <app-name> \ --artifact-path <path-to-your-JAR-file> \ --config-file-pattern <config-file-pattern>
Metriken
Schließen Sie die Abhängigkeit spring-boot-starter-actuator
in den Abhängigkeitenabschnitt der Datei pom.xml ein:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Metriken werden in regelmäßigen Abständen von den JMX-Endpunkten gepullt. Die Metriken können über das Azure-Portal visualisiert werden.
Warnung
Sie müssen spring.jmx.enabled=true
in Ihrer Konfigurationseigenschaft angeben. Andernfalls können Metriken nicht im Azure-Portal visualisiert werden.
Weitere Informationen
- Analysieren von Anwendungsprotokollen und -metriken
- Einrichten Ihres Konfigurationsservers
- Schnellstartanleitung zu Spring
- Spring Boot-Dokumentation
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie Sie eine Java Spring-Anwendung für die Bereitstellung in Azure Spring Apps konfigurieren. Informationen zum Einrichten einer Konfigurationsserverinstanz finden Sie unter Einrichten einer Spring Cloud-Konfigurationsserverinstanz für Ihren Dienst.
Weitere Beispiele finden Sie auf GitHub: Azure Spring Apps-Beispiele.