Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial rápido, incorporará Azure App Configuration en una aplicación de Java Quarkus para centralizar el almacenamiento y la administración de la configuración de la aplicación de forma independiente del código.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- CLI de Azure 2.68.0 o superior.
- Una tienda de configuración de aplicaciones. Para más información, consulte Inicio rápido: Creación de un almacén de Azure App Configuration.
- Kit de desarrollo de Java (JDK) versión 17.
- Apache Maven versión 3.9.8 o posterior.
Agregar un par clave-valor
Agregue el siguiente par clave-valor al almacén de App Configuration. Para más información sobre cómo agregar pares clave-valor a un almacén mediante la CLI de Azure, consulte Creación de un valor de clave.
| Key | Importancia |
|---|---|
| /application/config.message | Hola |
Creación de una aplicación de Quarkus
En esta sección, creará una aplicación de Quarkus con la extensión Azure App Configuration y la extensión REST. La extensión REST se usa para crear un servicio REST que devuelva el valor de configuración del almacén de App Configuration. Para más información, consulte Quarkus Azure App Configuration.
Cree una aplicación de Quarkus mediante el comando siguiente:
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"
La aplicación se crea en un directorio denominado quarkus-app-configuration. Esta es la estructura de la aplicación:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
El archivo pom.xml contiene las dependencias de la aplicación, incluida la extensión Azure App Configuration y la extensión REST. El siguiente XML es un ejemplo típico:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
El archivo GreetingResource.java contiene el servicio REST. Modifique este archivo para devolver posteriormente el valor de configuración del App Configuration Store.
El archivo GreetingResourceTest.java contiene la prueba unitaria para el servicio REST. Modifique este archivo para asegurar que el valor devuelto desde el servicio REST es igual al valor en el almacén de configuración de la aplicación más adelante.
Conexión a un almacén de App Configuration
Ahora que tiene un almacén de App Configuration y una aplicación de Quarkus con la extensión Azure App Configuration, puede conectar la aplicación a la tienda.
Programa la aplicación
Configure la aplicación mediante los pasos siguientes:
Abra el archivo GreetingResource.java en el directorio src/main/java/com/example y reemplace el contenido por el código siguiente:
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; } }El código modificado usa la anotación MicroProfile Config
@ConfigPropertypara inyectar el valor de la clave/application/config.messagedel almacén de App Configuration en el campovalue, y devuelve el valor en el servicio REST.Abra la prueba unitaria generada automáticamente, que se encuentra en el archivo GreetingResourceTest.java en el directorio src/test/java/com/example . Reemplace el contenido del archivo por el código siguiente:
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")); } }El código modificado afirma que el valor devuelto desde el servicio REST es igual al valor del almacén de App Configuration. Este valor es
Hellopara la clave/application/config.messageque agregó anteriormente.
Estos cambios de código en la aplicación son necesarios. Antes de ejecutar la aplicación, debe configurar la autenticación y la conexión al almacén de App Configuration.
Configuración de la autenticación en el almacén de App Configuration
Además de la autenticación con claves de acceso, la extensión Quarkus Azure App Configuration admite la autenticación con el identificador de Microsoft Entra mediante DefaultAzureCredential desde la biblioteca cliente de Identidad de Azure.
En esta guía de inicio rápido se usa microsoft Entra ID para la autenticación. Para más información, consulte DefaultAzureCredential la biblioteca cliente de Identidad de Azure para Java.
Configurar la autenticación en el almacén de App Configuration siguiendo los pasos siguientes:
Establezca variables de entorno mediante los siguientes comandos, reemplazando los
<...>marcadores de posición por los valores que creó anteriormente:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Use los siguientes comandos para asignar el
App Configuration Data Readerrol al usuario que ha iniciado sesión:# 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_IDExporte el punto de conexión del almacén de App Configuration a una variable de entorno denominada
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTmediante el comando siguiente:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Nota:
El valor de la variable de entorno
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTse utiliza en la propiedad de configuraciónquarkus.azure.app.configuration.endpointde la extensión Quarkus Azure App Configuration para establecer la conexión con el almacén de Azure App Configuration. Como alternativa, puede configurar esta propiedad en el archivo application.properties del directorio src/main/resources estableciendo esta propiedad directamente, como en el ejemplo siguiente. Asegúrese de reemplazar<your-app-configuration-store-endpoint>por el valor real.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Compilación y ejecución de la aplicación en un entorno local
Compile y ejecute la aplicación localmente mediante los pasos siguientes:
Use los siguientes comandos para compilar y ejecutar la aplicación en modo JVM:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarNota:
Como alternativa, puede ejecutar el ejemplo en modo nativo. Para usar el modo nativo, debe tener GraalVM instalado o usar una imagen de generador para compilar el ejecutable nativo. Para obtener más información, vea Compilar un ejecutable nativo. En este inicio rápido se usa Docker como entorno de ejecución de contenedor para compilar un ejecutable nativo de Linux. Si no tiene Docker instalado, puede descargarlo desde el sitio web de Docker.
Use los siguientes comandos para compilar y ejecutar el ejecutable nativo en un entorno de Linux:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerPruebe la aplicación mediante el siguiente comando:
curl localhost:8080/helloDebería ver
Helloen la salida porqueHelloes el valor de la clave/application/config.messageque agregó al almacén de configuración de la aplicación.Presione Control+C para detener la aplicación.
Limpieza de recursos
Para evitar los cargos de Azure, se recomienda limpiar los recursos que no sean necesarios. Cuando ya no necesite el almacén de App Configuration, use el siguiente comando para quitar el grupo de recursos y todos los recursos relacionados:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Consulte también
- Quarkus Azure App Configuration
- Protección de aplicaciones de Quarkus con microsoft Entra ID mediante OpenID Connect
- Implementación de una aplicación Java con Quarkus en Azure Container Apps
- Implementación de una aplicación Java con Quarkus en un clúster de Azure Kubernetes Service
- Implementar aplicaciones Java sin servidor con Quarkus en Azure Functions