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:

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

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.