Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cette introduction rapide, vous incorporez Azure App Configuration dans une application Java Quarkus pour centraliser le stockage et la gestion des paramètres d’application distincts de votre code.
Prerequisites
- Un compte Azure avec un abonnement actif. Créez-en un gratuitement.
- Azure CLI 2.68.0 ou version ultérieure.
- Un magasin de configuration d'applications. Pour plus d’informations, consultez Démarrage rapide : Créer un magasin Azure App Configuration.
- Java Development Kit (JDK) version 17.
- Apache Maven version 3.9.8 ou ultérieure.
Ajouter une paire clé-valeur
Ajoutez la paire clé-valeur suivante au magasin App Configuration. Pour plus d’informations sur l’ajout de paires clé-valeur à un magasin à l’aide d’Azure CLI, consultez Créer une clé-valeur.
| Key | Valeur |
|---|---|
| /application/config.message | Hello |
Créer une application Quarkus
Dans cette section, vous allez créer une application Dockerus avec l’extension Azure App Configuration et l’extension REST. L’extension REST est utilisée pour créer un service REST qui retourne la valeur de configuration à partir du magasin App Configuration. Pour plus d’informations, consultez Quarkus Azure App Configuration.
Créez une application Quarkus à l’aide de la commande suivante :
mvn io.quarkus.platform:quarkus-maven-plugin:create \
-DprojectGroupId=com.example \
-DprojectArtifactId=quarkus-app-configuration \
-Dextensions='io.quarkiverse.azureservices:quarkus-azure-app-configuration,rest' \
-DjavaVersion="17"
L’application est créée dans un nouveau répertoire nommé quarkus-app-configuration. Voici la structure de l’application :
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Le fichier pom.xml contient les dépendances de l’application, notamment l’extension Azure App Configuration et l’extension REST. Le code XML suivant est un exemple classique :
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Le fichier GreetingResource.java contient le service REST. Vous modifiez ce fichier pour retourner la valeur de configuration à partir du magasin App Configuration ultérieurement.
Le fichier GreetingResourceTest.java contient le test unitaire du service REST. Vous modifiez ce fichier pour affirmer que la valeur retournée par le service REST est égale à la valeur dans le magasin App Configuration ultérieurement.
Se connecter à un magasin App Configuration
Maintenant que vous disposez d’un magasin App Configuration et d’une application Quarkus avec l’extension Azure App Configuration, vous pouvez connecter l’application au magasin.
Coder l’application
Configurez l’application en procédant comme suit :
Ouvrez le fichier GreetingResource.java dans le répertoire src/main/java/com/example , puis remplacez le contenu par le code suivant :
package com.example; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import org.eclipse.microprofile.config.inject.ConfigProperty; @Path("/hello") public class GreetingResource { @ConfigProperty(name = "/application/config.message") String value; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return value; } }Le code modifié utilise l’annotation MicroProfile Config
@ConfigPropertypour injecter la valeur de la clé/application/config.messagedu magasin App Configuration dans levaluechamp et retourne la valeur dans le service REST.Ouvrez le test unitaire généré automatiquement, qui se trouve dans le fichier GreetingResourceTest.java dans le répertoire src/test/java/com/example . Remplacez le contenu du fichier par le code suivant :
package com.example; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; import javax.inject.Inject; import static io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.is; @QuarkusTest public class GreetingResourceTest { @Test public void testHelloEndpoint() { given() .when().get("/hello") .then() .statusCode(200) .body(is("Hello")); } }Le code modifié affirme que la valeur retournée par le service REST est égale à la valeur dans le magasin App Configuration. Cette valeur concerne
Hellola clé/application/config.messageque vous avez ajoutée précédemment.
Ces modifications de code apportées à l’application sont toutes requises. Avant d’exécuter l’application, vous devez configurer l’authentification et la connexion au magasin App Configuration.
Configurer l’authentification auprès du magasin App Configuration
En plus de l’authentification avec des clés d’accès, l’extension Azure AppConfiguration prend en charge l’authentification avec Microsoft Entra ID à l’aide DefaultAzureCredential de la bibliothèque cliente Azure Identity.
Vous utilisez l’ID Microsoft Entra pour l’authentification dans ce guide de démarrage rapide. Pour plus d’informations, consultez DefaultAzureCredential la bibliothèque de client Azure Identity pour Java.
Configurez l’authentification auprès du magasin App Configuration en procédant comme suit :
Définissez des variables d’environnement à l’aide des commandes suivantes, en remplaçant les
<...>espaces réservés par les valeurs que vous avez créées précédemment :export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Utilisez les commandes suivantes pour affecter le
App Configuration Data Readerrôle à l’utilisateur connecté :# Retrieve the app configuration resource ID export APP_CONFIGURATION_RESOURCE_ID=$(az appconfig show \ --resource-group $RESOURCE_GROUP_NAME \ --name "${APP_CONFIG_NAME}" \ --query 'id' \ --output tsv) # Assign the "App Configuration Data Reader" role to the current signed-in identity az role assignment create \ --assignee $(az ad signed-in-user show --query 'id' --output tsv) \ --role "App Configuration Data Reader" \ --scope $APP_CONFIGURATION_RESOURCE_IDExportez le point de terminaison du magasin App Configuration vers une variable d’environnement nommée
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTà l’aide de la commande suivante :export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Note
La valeur de la variable d’environnement
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTest utilisée dans la configuration de la propriétéquarkus.azure.app.configuration.endpointde l'extension Quarkus Azure App Configuration pour établir la connexion au magasin Azure App Configuration. Vous pouvez également configurer cette propriété dans le fichier application.properties dans le répertoire src/main/resources en le définissant directement, comme dans l’exemple suivant. Veillez à remplacer<your-app-configuration-store-endpoint>par votre valeur réelle.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Générer et exécuter l’application localement
Générez et exécutez l’application localement en procédant comme suit :
Utilisez les commandes suivantes pour générer et exécuter l’application en mode JVM :
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarNote
Vous pouvez également exécuter l’exemple en mode natif. Pour utiliser le mode natif, vous devez installer GraalVM ou utiliser une image de générateur pour générer l’exécutable natif. Pour plus d’informations, consultez Génération d’un exécutable natif. Ce guide de démarrage rapide utilise Docker comme runtime de conteneur pour générer un exécutable natif Linux. Si vous n’avez pas installé Docker, vous pouvez le télécharger à partir du site web Docker.
Utilisez les commandes suivantes pour générer et exécuter l’exécutable natif dans un environnement Linux :
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerTestez votre application à l’aide de la commande suivante :
curl localhost:8080/helloVous devez voir
Hellodans la sortie, carHelloest la valeur de la/application/config.messageclé que vous avez ajoutée au magasin App Configuration.Appuyez sur Ctrl+C pour arrêter l’application.
Nettoyer les ressources
Pour éviter des frais Azure, vous devez nettoyer les ressources inutiles. Lorsque vous n’avez plus besoin du magasin App Configuration, utilisez la commande suivante pour supprimer le groupe de ressources et toutes les ressources associées :
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Voir aussi
- Configuration d’application Quarkus Azure
- Sécuriser les applications Quarkus avec Microsoft Entra ID à l’aide d’OpenID Connect
- Déployer une application Java avec Dockerus sur Azure Container Apps
- Déployer une application Java avec Quarkus sur un cluster Azure Kubernetes Service (AKS)
- Déployer des applications Java serverless avec Quarkus sur Azure Functions