Příprava aplikace na nasazení v Azure Spring Apps
Poznámka:
Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.
Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise
Tento článek ukazuje, jak připravit existující aplikaci Steeltoe pro nasazení do Azure Spring Apps. Azure Spring Apps poskytuje robustní služby pro hostování, monitorování, škálování a aktualizaci aplikace Steeltoe.
Tento článek vysvětluje závislosti, konfiguraci a kód, které jsou potřeba ke spuštění aplikace .NET Core Steeltoe v Azure Spring Apps. Informace o nasazení aplikace do Azure Spring Apps najdete v tématu Nasazení první aplikace Spring Boot v Azure Spring Apps.
Poznámka:
Podpora Steeltoe pro Azure Spring Apps se v současné době nabízí jako veřejná verze Preview. Nabídky Public Preview umožňují zákazníkům experimentovat s novými funkcemi před oficiální verzí. Funkce a služby Ve verzi Public Preview nejsou určené pro produkční použití. Další informace o podpoře ve verzích Preview najdete v nejčastějších dotazech nebo vytvoření žádosti o podporu.
Podporované verze
Azure Spring Apps podporuje:
- .NET Core 3.1
- Steeltoe 2.4 a 3.0
Závislosti
Pro Steeltoe 2.4 přidejte do souboru projektu nejnovější balíček Microsoft.Azure.SpringCloud.Client 1.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>
Pro Steeltoe 3.0 přidejte do souboru projektu nejnovější balíček Microsoft.Azure.SpringCloud.Client 2.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>
Aktualizace Program.cs
Program.Main
V metodě zavolejte metoduUseAzureSpringCloudService
.
Pro Steeltoe 2.4.4, zavolejte UseAzureSpringCloudService
za ConfigureWebHostDefaults
a po AddConfigServer
, pokud je volána:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
Pro Steeltoe 3.0.0 volejte UseAzureSpringCloudService
před ConfigureWebHostDefaults
a před jakýmkoli konfiguračním kódem Steeltoe:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
Povolení zjišťování služby Serveru Eureka
Poznámka:
Eureka se nevztahuje na plán Enterprise. Pokud používáte plán Enterprise, přečtěte si téma Použití registru služeb.
Ve zdroji konfigurace, který se používá při spuštění aplikace v Azure Spring Apps, nastavte spring.application.name
stejný název jako aplikace Azure Spring Apps, do které je projekt nasazený.
Pokud například nasadíte projekt .NET pojmenovaný EurekaDataProvider
do aplikace Azure Spring Apps s názvem planet-weather-provider
appSettings.json soubor by měl obsahovat následující JSON:
"spring": {
"application": {
"name": "planet-weather-provider"
}
}
Použití zjišťování služeb
Pokud chcete volat službu pomocí zjišťování služby Serveru Eureka, nastavte požadavky HTTP na místo, kde http://<app_name>
app_name
je hodnota spring.application.name
cílové aplikace. Například následující kód volá planet-weather-provider
službu:
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]),
};
}
Tento článek ukazuje, jak připravit existující aplikaci Java Spring pro nasazení do Azure Spring Apps. Pokud je služba Azure Spring Apps správně nakonfigurovaná, poskytuje robustní služby pro monitorování, škálování a aktualizaci aplikace Java Spring.
Před spuštěním tohoto příkladu můžete vyzkoušet základní rychlý start.
Další příklady vysvětlují, jak nasadit aplikaci do Azure Spring Apps při konfiguraci souboru POM.
Tento článek vysvětluje požadované závislosti a postup jejich přidání do souboru POM.
Verze modulu Java Runtime
Podrobnosti najdete v části Java Runtime a verze operačního systému v nejčastějších dotazech k Azure Spring Apps.
Verze Spring Boot a Spring Cloud
Pokud chcete připravit existující aplikaci Spring Boot pro nasazení do Azure Spring Apps, zahrňte do souboru POM aplikace závislosti Spring Boot a Spring Cloud, jak je znázorněno v následujících částech.
Azure Spring Apps podporuje nejnovější hlavní verzi Spring Boot nebo Spring Cloud počínaje 30 dny od vydání. Azure Spring Apps podporuje nejnovější podverzi hned po vydání. Podporované verze Spring Boot můžete získat z verzí Spring Boot a Spring Cloud z verzí Spring Cloud.
Následující tabulka uvádí podporované kombinace Spring Bootu a Spring Cloudu:
Verze Spring Bootu | Verze Spring Cloudu | Ukončení podpory |
---|---|---|
3.2.x | 2023.0.x také známý jako Leyton | 2024-11-23 |
3.1.x | 2022.0.3+ také známý jako Kilburn | 2024-05-18 |
3.0.x | 2022.0.3+ také známý jako Kilburn | 2023-11-24 |
2.7.x | 2021.0.3+ také známý jako Jubilee | 2023-11-24 |
Další informace najdete na následujících stránkách:
- Podpora verzí pro Javu, Spring Boot a další
- Podpora Spring Bootu
- Podpora spring cloudových konfigurací
- Podpora Spring Cloud Netflixu
- Přidání Spring Cloudu do existující aplikace Spring Boot
Další doporučené závislosti pro povolení funkcí Azure Spring Apps
Pokud chcete povolit integrované funkce Azure Spring Apps z registru služeb do distribuovaného trasování, musíte do své aplikace zahrnout také následující závislosti. Některé z těchto závislostí můžete odstranit, pokud pro konkrétní aplikace nepotřebujete odpovídající funkce.
Registr služeb
Pokud chcete použít spravovanou službu Azure Service Registry, zahrňte závislost spring-cloud-starter-netflix-eureka-client
do souboru pom.xml , jak je znázorněno tady:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Koncový bod serveru Registru služby se automaticky vloží jako proměnné prostředí do vaší aplikace. Aplikace se můžou zaregistrovat na serveru Service Registry a zjišťovat další závislé aplikace.
Povolení poznámky EnableDiscoveryClient
Do zdrojového kódu aplikace přidejte následující poznámku.
@EnableDiscoveryClient
Podívejte se například na aplikaci piggymetrics z předchozích příkladů:
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);
}
}
Distribuovaná konfigurace
Pokud chcete povolit distribuovanou konfiguraci, do části závislostí souboru pom.xml zahrňte následující spring-cloud-config-client
závislost:
<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>
Upozorňující
Nezadávejte spring.cloud.config.enabled=false
v konfiguraci bootstrap. Jinak aplikace přestane pracovat s konfiguračním serverem.
Metriky
spring-boot-starter-actuator
Do části závislostí souboru pom.xml zahrňte závislost, jak je znázorněno tady:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Metriky se pravidelně natahují z koncových bodů JMX. Metriky můžete vizualizovat pomocí webu Azure Portal.
Upozorňující
Je nutné zadat spring.jmx.enabled=true
ve vlastnosti konfigurace. Jinak se metriky nedají vizualizovat na webu Azure Portal.
Viz také
- Analýza aplikačních protokolů a metrik
- Nastavení konfiguračního serveru
- Úvodní příručka k Springu
- Dokumentace ke Spring Bootu
Další kroky
V tomto článku jste zjistili, jak nakonfigurovat aplikaci Java Spring pro nasazení do Azure Spring Apps. Informace o nastavení instance konfiguračního serveru najdete v tématu Nastavení instance konfiguračního serveru.
Další ukázky jsou k dispozici na GitHubu: Ukázky Azure Spring Apps.