Udostępnij za pośrednictwem


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

Uwaga

Plany Podstawowa, Standardowa i Enterprise zostaną wycofane od połowy marca 2025 r. z 3-letnim okresem emerytalnym. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.

Zużycie standardowe i dedykowany plan zostaną wycofane od 30 września 2024 r. z całkowitym zamknięciem po sześciu miesiącach. Zalecamy przejście do usługi Azure Container Apps. Aby uzyskać więcej informacji, zobacz Migrowanie użycia usługi Azure Spring Apps w warstwie Standardowa i dedykowanego planu do usługi Azure Container Apps.

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 platformy .NET o nazwie w aplikacji Azure Spring Apps o nazwie EurekaDataProvider planet-weather-provider plik appSettings.json , 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
3.2.x 2023.0.x znany również jako Leyton 2024-11-23
3.1.x 2022.0.3+ znany również jako Kilburn 2024-05-18
3.0.x 2022.0.3+ znany również jako Kilburn 2023-11-24
2.7.x 2021.0.3+ znany również jako Jubileusz 2023-11-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ą, dołącz następującą spring-cloud-config-client zależność w sekcji zależności pliku pom.xml :

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

Ostrzeżenie

Nie należy określać spring.cloud.config.enabled=false w konfiguracji bootstrap. W przeciwnym razie aplikacja przestanie działać z serwerem konfiguracji.

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.