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:
- Obsługa wersji dla języków Java, Spring Boot i innych
- Obsługa platformy Spring Boot
- Obsługa konfiguracji platformy Spring Cloud
- Obsługa platformy Spring Cloud Netflix
- Dodawanie usługi Spring Cloud do istniejącej aplikacji Spring Boot
Inne zalecane zależności umożliwiające włączanie funkcji usługi Azure Spring Apps
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ż
- Analizowanie dzienników aplikacji i metryk
- Konfigurowanie serwera konfiguracji
- Przewodnik Szybki start dotyczący platformy Spring
- Dokumentacja platformy Spring Boot
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.