Préparer une application Spring Java pour le déploiement dans Azure Spring Apps
Remarque
Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.
Cet article s’applique au : Niveau ✔️ De base/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 du support commercial |
---|---|---|
3.2.x | 2023.0.x également appelée Leyton | 2026-02-23 |
3.1.x | 2022.0.3+ également appelée Kilburn | 2025-08-18 |
3.0.x | 2022.0.3+ également appelée Kilburn | 2025-02-24 |
2.7.x | 2021.0.3+ également appelée Jubilee | 2025-08-24 |
2.6.x | 2021.0.3+ également appelée Jubilee | 2024-02-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 dans le plan Entreprise, utilisez Application Configuration Service for VMware Tanzu, qui est un des composants VMware Tanzu internes. Application Configuration Service for Tanzu est natif Kubernetes et différent de Spring Cloud Config Server. Application Configuration Service for Tanzu permet une gestion native Kubernetes des ressources ConfigMap qui sont renseignées avec les propriétés définies dans un ou plusieurs dépôts Git.
Dans le plan Entreprise, il n’y a pas de Spring Cloud Config Server, mais vous pouvez utiliser Application Configuration Service for Tanzu pour gérer les configurations centralisées. Pour plus d’informations, consultez Utiliser Application Configuration Service for Tanzu
Pour utiliser Application Configuration Service for Tanzu, suivez ces étapes pour chacune de vos applications :
Ajoutez une liaison d’application explicite pour déclarer que votre application doit utiliser Application Configuration Service for Tanzu.
Remarque
Lorsque vous modifiez l’état de liaison, vous devez redémarrer ou redéployer l’application pour que le changement prenne effet.
Définissez des modèles de fichier config. Les modèles de fichier config vous permettent de choisir l’application et le profil utilisés par l’application. Pour plus d’informations, consultez la section Modèle de Utiliser Application Configuration Service for Tanzu.
Une autre option est de définir les modèles de fichier config en même temps que votre déploiement d’application, comme illustré dans l’exemple suivant :
az spring app deploy \ --name <app-name> \ --artifact-path <path-to-your-JAR-file> \ --config-file-pattern <config-file-pattern>
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.