Przygotowywanie aplikacji do wdrożenia w usłudze Azure Spring Apps

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise

W tym artykule pokazano, jak przygotować istniejącą aplikację Steeltoe do wdrożenia w usłudze Azure Spring Apps. Usługa Azure Spring Apps oferuje niezawodne usługi do hostowania, monitorowania, skalowania i aktualizowania aplikacji Steeltoe.

W tym artykule wyjaśniono zależności, konfigurację i kod wymagany do uruchamiania aplikacji .NET Core Steeltoe w usłudze Azure Spring Apps. Aby uzyskać informacje o sposobie wdrażania aplikacji w usłudze Azure Spring Apps, zobacz Wdrażanie pierwszej aplikacji Spring Boot w usłudze Azure Spring Apps.

Uwaga

Obsługa usługi Steeltoe dla usługi Azure Spring Apps jest obecnie oferowana jako publiczna wersja zapoznawcza. Oferty publicznej wersji zapoznawczej umożliwiają klientom eksperymentowanie z nowymi funkcjami przed ich oficjalną wersją. Publiczne funkcje i usługi w wersji zapoznawczej nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji na temat pomocy technicznej podczas podglądów, zobacz często zadawane pytania lub zgłoś wniosek o pomoc techniczną.

Obsługiwane wersje

Usługa Azure Spring Apps obsługuje:

  • .NET Core 3.1
  • Steeltoe 2.4 i 3.0

Zależności

W przypadku pakietu Steeltoe 2.4 dodaj do pliku projektu najnowszy pakiet Microsoft.Azure.SpringCloud.Client 1.x.x.x :

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

W przypadku pakietu Steeltoe 3.0 dodaj do pliku projektu najnowszy pakiet Microsoft.Azure.SpringCloud.Client 2.x.x.x :

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

Aktualizowanie Program.cs

W metodzie Program.Main wywołaj metodę UseAzureSpringCloudService .

W przypadku steeltoe 2.4.4 zadzwoń po ConfigureWebHostDefaults wywołaniu UseAzureSpringCloudService i po AddConfigServer wywołaniu:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        })
        .AddConfigServer()
        .UseAzureSpringCloudService();

W przypadku elementu Steeltoe 3.0.0 wywołaj metodę UseAzureSpringCloudService przed ConfigureWebHostDefaults kodem konfiguracji Steeltoe i przed nim:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseAzureSpringCloudService()
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        })
        .AddConfigServer();

Włączanie odnajdywania usługi Eureka Server

Uwaga

Eureka nie ma zastosowania do planu Enterprise. Jeśli używasz planu Enterprise, zobacz Korzystanie z rejestru usług.

W źródle konfiguracji używanym podczas uruchamiania aplikacji w usłudze Azure Spring Apps ustaw spring.application.name tę samą nazwę co aplikacja Azure Spring Apps, do której jest wdrażany projekt.

Jeśli na przykład wdrożysz projekt .NET o nazwie w aplikacji Azure Spring Apps o nazwie EurekaDataProviderplanet-weather-provideraplikacja Ustawienia.json plik powinien zawierać następujący kod JSON:

"spring": {
  "application": {
    "name": "planet-weather-provider"
  }
}

Korzystanie z odnajdywania usługi

Aby wywołać usługę przy użyciu odnajdywania usługi Serwera Eureka, należy wysyłać żądania HTTP do lokalizacji, gdzie http://<app_name>app_name jest wartością spring.application.name aplikacji docelowej. Na przykład następujący kod wywołuje usługę planet-weather-provider :

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]),
    };
}

W tym artykule pokazano, jak przygotować istniejącą aplikację Java Spring do wdrożenia w usłudze Azure Spring Apps. Jeśli usługa Azure Spring Apps została prawidłowo skonfigurowana, udostępnia niezawodne usługi do monitorowania, skalowania i aktualizowania aplikacji Java Spring.

Przed uruchomieniem tego przykładu możesz wypróbować podstawowy przewodnik Szybki start.

Inne przykłady wyjaśniają, jak wdrożyć aplikację w usłudze Azure Spring Apps po skonfigurowaniu pliku POM.

W tym artykule wyjaśniono wymagane zależności i sposób dodawania ich do pliku POM.

Wersja środowiska uruchomieniowego Języka Java

Aby uzyskać szczegółowe informacje, zobacz sekcję Środowiska uruchomieniowego Java i wersji systemu operacyjnego w często zadawanych pytaniach dotyczących usługi Azure Spring Apps.

Wersje spring boot i Spring Cloud

Aby przygotować istniejącą aplikację Spring Boot do wdrożenia w usłudze Azure Spring Apps, dołącz zależności Spring Boot i Spring Cloud w pliku POM aplikacji, jak pokazano w poniższych sekcjach.

Usługa Azure Spring Apps obsługuje najnowszą wersję główną platformy Spring Boot lub Spring Cloud, począwszy od 30 dni od jej wydania. Usługa Azure Spring Apps obsługuje najnowszą wersję pomocniczą natychmiast po jej wydaniu. Obsługiwane wersje platformy Spring Boot można uzyskać z wersji Spring Boot i Spring Cloud z wersji spring cloud.

W poniższej tabeli wymieniono obsługiwane kombinacje rozwiązań Spring Boot i Spring Cloud:

Wersja platformy Spring Boot Wersja platformy Spring Cloud Koniec wsparcia komercyjnego
3.2.x 2023.0.x znany również jako Leyton 2026-02-23
3.1.x 2022.0.3+ znany również jako Kilburn 2025-08-18
3.0.x 2022.0.3+ znany również jako Kilburn 2025-02-24
2.7.x 2021.0.3+ znany również jako Jubileusz 2025-08-24
2.6.x 2021.0.3+ znany również jako Jubileusz 2024-02-24

Aby uzyskać więcej informacji, zobacz następujące strony:

Aby włączyć wbudowane funkcje usługi Azure Spring Apps z rejestru usług do śledzenia rozproszonego, należy również uwzględnić następujące zależności w aplikacji. Niektóre z tych zależności można usunąć, jeśli nie potrzebujesz odpowiednich funkcji dla określonych aplikacji.

Rejestr usług

Aby użyć zarządzanej usługi Azure Service Registry, uwzględnij spring-cloud-starter-netflix-eureka-client zależność w pliku pom.xml , jak pokazano poniżej:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

Punkt końcowy serwera rejestru usług jest automatycznie wstrzykiwany jako zmienne środowiskowe w aplikacji. Aplikacje mogą rejestrować się na serwerze usługi Service Registry i odnajdywać inne aplikacje zależne.

EnableDiscoveryClient adnotacja

Dodaj następującą adnotację do kodu źródłowego aplikacji.

@EnableDiscoveryClient

Zobacz na przykład aplikację piggymetrics z wcześniejszych przykładów:

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);
    }
}

Konfiguracja rozproszona

Aby włączyć konfigurację rozproszoną w planie Enterprise, użyj usługi Konfiguracji aplikacji dla programu VMware Tanzu, która jest jednym z zastrzeżonych składników programu VMware Tanzu. Usługa Konfiguracji aplikacji dla tanzu jest natywna dla platformy Kubernetes i różni się od serwera Spring Cloud Config Server. Usługa Application Configuration Service for Tanzu umożliwia zarządzanie natywnymi zasobami ConfigMap platformy Kubernetes, które są wypełniane z właściwości zdefiniowanych w co najmniej jednym repozytorium Git.

W planie Enterprise nie ma serwera Spring Cloud Config Server, ale do zarządzania scentralizowanymi konfiguracjami można użyć usługi Application Configuration Service for Tanzu. Aby uzyskać więcej informacji, zobacz Use Application Configuration Service for Tanzu (Używanie usługi konfiguracji aplikacji dla tanzu)

Aby użyć usługi Application Configuration Service for Tanzu, wykonaj następujące kroki dla każdej aplikacji:

  1. Dodaj jawne powiązanie aplikacji, aby zadeklarować, że aplikacja musi używać usługi Application Configuration Service for Tanzu.

    Uwaga

    Po zmianie stanu powiązania/odłączenia należy ponownie uruchomić lub ponownie wdrożyć aplikację, aby zmiany zaczęły obowiązywać.

  2. Ustaw wzorce plików konfiguracji. Wzorce plików konfiguracji umożliwiają wybranie aplikacji i profilu używanej aplikacji. Aby uzyskać więcej informacji, zobacz sekcję Pattern (Wzorzec ) w temacie Use Application Configuration Service for Tanzu (Korzystanie z usługi konfiguracji aplikacji dla tanzu).

    Inną opcją jest ustawienie wzorców plików konfiguracji w tym samym czasie co wdrożenie aplikacji, jak pokazano w poniższym przykładzie:

       az spring app deploy \
           --name <app-name> \
           --artifact-path <path-to-your-JAR-file> \
           --config-file-pattern <config-file-pattern>
    

Metryki

Uwzględnij spring-boot-starter-actuator zależność w sekcji zależności pliku pom.xml , jak pokazano poniżej:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Metryki są okresowo pobierane z punktów końcowych JMX. Metryki można wizualizować przy użyciu witryny Azure Portal.

Ostrzeżenie

Musisz określić spring.jmx.enabled=true we właściwości konfiguracji. W przeciwnym razie nie można wizualizować metryk w witrynie Azure Portal.

Zobacz też

Następne kroki

W tym artykule przedstawiono sposób konfigurowania aplikacji Java Spring na potrzeby wdrażania w usłudze Azure Spring Apps. Aby dowiedzieć się, jak skonfigurować wystąpienie serwera konfiguracji, zobacz Konfigurowanie wystąpienia serwera konfiguracji.

Więcej przykładów jest dostępnych w witrynie GitHub: Przykłady usługi Azure Spring Apps.