Préparer une application Spring Java pour le déploiement dans Azure Spring Apps
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à :✅ Essentiel/Standard ✅ Entreprise
Cet article explique comment préparer une application Steeltoe existante pour le déploiement sur Azure Spring Apps. Azure Spring Apps fournit des services robustes pour héberger, monitorer, mettre à l’échelle et mettre à jour une application Steeltoe.
Cet article présente les dépendances, la configuration et le code nécessaires pour exécuter une application .NET Core Steeltoe dans Azure Spring Apps. Pour plus d’informations sur le déploiement d’une application sur Azure Spring Apps, consultez Déployer votre première application Spring Boot dans Azure Spring Apps.
Remarque
La prise en charge d’Azure Spring Apps par Steeltoe est actuellement disponible en préversion publique. Les offres en préversion publique permettent aux clients de tester les nouvelles fonctionnalités avant leur publication officielle. Les fonctionnalités et services en préversion publique ne sont pas destinés à une utilisation en contexte de production. Pour en savoir plus sur le support offert avec les préversions, consultez notre FAQ ou envoyez une demande de support.
Versions prises en charge
Azure Spring Apps prend en charge :
- .NET Core 3.1
- Steeltoe 2.4 et 3.0
Dépendances
Pour Steeltoe 2.4, ajoutez le dernier package Microsoft.Azure.SpringCloud.Client 1.x.x au fichier projet :
<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>
Pour Steeltoe 3.0, ajoutez le dernier package Microsoft.Azure.SpringCloud.Client 2.x.x au fichier projet :
<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>
Mise à jour Program.cs
Dans la méthode Program.Main
, appelez la méthode UseAzureSpringCloudService
.
Pour Steeltoe 2.4.4, appelez UseAzureSpringCloudService
après ConfigureWebHostDefaults
et après AddConfigServer
s’il est appelé :
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer()
.UseAzureSpringCloudService();
Pour Steeltoe 3.0.0, appelez UseAzureSpringCloudService
avant ConfigureWebHostDefaults
et avant tout code de configuration Steeltoe :
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseAzureSpringCloudService()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.AddConfigServer();
Activer la détection de service Eureka Server
Remarque
Eureka n’est pas applicable au plan Entreprise. Si vous utilisez le plan Entreprise, consultez Utiliser le registre de service.
Dans la source de configuration utilisée quand l’application s’exécute dans Azure Spring Apps, définissez spring.application.name
sur le même nom que l’application Azure Spring Apps dans laquelle le projet est déployé.
Par exemple, si vous déployez un projet .NET nommé EurekaDataProvider
dans une application Azure Spring Apps nommée planet-weather-provider
, le fichier appSettings.json doit inclure le code JSON suivant :
"spring": {
"application": {
"name": "planet-weather-provider"
}
}
Utiliser la détection de service
Pour appeler un service à l'aide de la détection de service Eureka Server, envoyez des requêtes HTTP à http://<app_name>
, sachant que app_name
correspond à la valeur de la propriété spring.application.name
de l'application cible. Par exemple, le code suivant appelle le service 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]),
};
}
Cet article montre comment préparer une application Java Spring existante pour son déploiement sur Azure Spring Apps. S’il est correctement configuré, Azure Spring Apps fournit des services robustes pour monitorer, mettre à l’échelle et mettre à jour votre application Java Spring.
Avant d’exécuter cet exemple, vous pouvez essayer le démarrage rapide de base.
D’autres exemples expliquent comment déployer une application sur Azure Spring Apps quand le fichier POM est configuré.
Cet article explique les dépendances nécessaires et comment les ajouter au fichier POM.
Version du runtime Java
Pour plus d’informations, consultez la section Runtime Java et versions de système d’exploitation du FAQ sur Azure Spring Apps.
Versions de Spring Boot et de Spring Cloud
Pour préparer une application Spring Boot existante pour un déploiement sur Azure Spring Apps, incluez les dépendances Spring Boot et Spring Cloud dans le fichier POM de l’application comme indiqué dans les sections suivantes.
Azure Spring Apps prend en charge la dernière version principale de Spring Boot ou Spring Cloud 30 jours après sa publication. Azure Spring Apps prend en charge la dernière version mineure dès sa publication. Vous pouvez obtenir des versions de Spring Boot prises en charge à partir des Versions Spring Boot et des versions de Spring Cloud à partir de Versions Spring Cloud.
Le tableau ci-dessous liste les combinaisons prises en charges de Spring Boot et Spring Cloud :
Version de Spring Boot | Version de Spring Cloud | Fin de la prise en charge |
---|---|---|
3.2.x | 2023.0.x également appelée Leyton | 2024-11-23 |
3.1.x | 2022.0.3+ également appelée Kilburn | 2024-05-18 |
3.0.x | 2022.0.3+ également appelée Kilburn | 2023-11-24 |
2.7.x | 2021.0.3+ également appelée Jubilee | 2023-11-24 |
Pour plus d'informations, consultez les pages suivantes :
- Prise en charge des versions de Java, Spring Boot, etc.
- Support Spring Boot
- Support Spring Cloud Config
- Support Spring Cloud Netflix
- Ajout de Spring Cloud à une application Spring Boot existante
Autres dépendances recommandées pour activer les fonctionnalités Azure Spring Apps
Pour activer les fonctionnalités intégrées d’Azure Spring Apps à partir du registre de services dans le traçage distribué, vous devez également inclure les dépendances suivantes dans votre application. Vous pouvez supprimer certaines de ces dépendances si vous n’avez pas besoin de fonctionnalités correspondantes pour les applications spécifiques.
Registre de service
Pour utiliser le service managé Azure Service Registry, ajoutez la dépendance spring-cloud-starter-netflix-eureka-client
dans le fichier pom.xml, comme indiqué ici :
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Le point de terminaison du serveur Service Registry est injecté automatiquement sous la forme de variables d’environnement avec votre application. Les applications peuvent s’inscrire sur le serveur Service Registry et découvrir d’autres applications dépendantes.
Annotation EnableDiscoveryClient
Ajoutez l’annotation suivante au code source de l’application.
@EnableDiscoveryClient
Par exemple, regardez l’application piggymetrics provenant des exemples précédents :
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);
}
}
Configuration distribuée
Pour activer la configuration distribuée, ajoutez la dépendance spring-cloud-config-client
suivante dans la section des dépendances de votre fichier 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>
Avertissement
Ne spécifiez pas spring.cloud.config.enabled=false
dans votre configuration de démarrage. Si vous le faites, votre application cessera de fonctionner avec le serveur de configuration.
Métriques
Ajoutez la dépendance spring-boot-starter-actuator
dans la section des dépendances de votre fichier pom.xml, comme indiqué ici :
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Les métriques sont tirées (pull) périodiquement des points de terminaison JMX. Vous pouvez visualiser les métriques dans le portail Azure.
Avertissement
Vous devez spécifier spring.jmx.enabled=true
dans votre propriété de configuration. Dans le cas contraire, les métriques ne peuvent pas être visualisées dans le portail Azure.
Voir aussi
- Analyser les journaux et les métriques des applications
- Configurer votre serveur de configuration
- Guide de démarrage rapide Spring
- Documentation Spring Boot
Étapes suivantes
Dans cet article, vous avez appris à configurer votre application Java Spring pour la déployer sur Azure Spring Apps. Pour savoir comment configurer une instance Config Server, consultez Configurer une instance Config Server.
D’autres exemples sont disponibles sur GitHub : Exemples Azure Spring Apps.