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:

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:

  1. 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.

  2. 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

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.