Vorbereiten einer Anwendung für die Bereitstellung in Azure Spring Apps
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 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 Supports |
---|---|---|
3.2.x | 2023.0.x auch als Leyton bezeichnet | 2024-11-23 |
3.1.x | 2022.0.3 und höher, auch als Kilburn bezeichnet | 2024-05-18 |
3.0.x | 2022.0.3 und höher, auch als Kilburn bezeichnet | 2023-11-24 |
2.7.x | 2021.0.3 und höher, auch als Jubilee bezeichnet | 2023-11-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
Schließen Sie zum Aktivieren der verteilten Konfiguration die folgende Abhängigkeit vom Typ spring-cloud-config-client
in den Abhängigkeitenabschnitt der Datei pom.xml ein:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Warnung
Geben Sie nicht spring.cloud.config.enabled=false
in Ihrer Bootstrapkonfiguration an. Andernfalls kann die Anwendung nicht mehr mit dem Konfigurationsserver verwendet werden.
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.