Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva, si integra Azure App Configuration in un'app Java Quarkus per centralizzare l'archiviazione e la gestione delle impostazioni dell'applicazione, per separarle dal codice.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creane uno gratis.
- Interfaccia della riga di comando di Azure 2.68.0 o versione successiva.
- Un servizio di configurazione delle app. Per altre informazioni, vedere Guida rapida: Creare un servizio di configurazione app di Azure.
- Java Development Kit (JDK) versione 17.
- Apache Maven versione 3.9.8 o successiva.
Aggiungi una coppia chiave-valore
Aggiungere la coppia chiave-valore seguente all'archivio di App Configuration. Per altre informazioni su come aggiungere coppie chiave-valore a un archivio usando l'interfaccia della riga di comando di Azure, vedere Creare un valore chiave.
| Key | Value |
|---|---|
| /application/config.message | Ciao |
Creare un'app Quarkus
In questa sezione viene creata un'app Quarkus con l'estensione Configurazione app di Azure e l'estensione REST. L'estensione REST viene usata per creare un servizio REST che restituisce il valore di configurazione dall'archivio di Configurazione app. Per altre informazioni, vedere Configurazione app di Azure Quarkus.
Creare un'app Quarkus usando il comando seguente:
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'app viene creata in una nuova directory denominata quarkus-app-configuration. Ecco la struttura dell'app:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Il file pom.xml contiene le dipendenze per l'app, tra cui l'estensione Configurazione app di Azure e l'estensione REST. Il codice XML seguente è un esempio tipico:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Il file GreetingResource.java contiene il servizio REST. Questo file viene modificato per restituire il valore di configurazione dall'archivio di Configurazione app in un secondo momento.
Il file GreetingResourceTest.java contiene lo unit test per il servizio REST. Modificare questo file per verificare che il valore restituito dal servizio REST sia uguale al valore nello store di Configurazione dell'app successivamente.
Connettersi a un archivio di Configurazione app
Ora che si dispone di uno store di configurazione delle app e di un'app Quarkus con l'estensione Azure App Configuration, è possibile connettere l'app allo store.
Codice dell'applicazione
Configurare l'applicazione attenendosi alla procedura seguente:
Aprire il file GreetingResource.java nella directory src/main/java/com/example e sostituire il contenuto con il codice seguente:
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; } }Il codice modificato usa l'annotazione MicroProfile Config
@ConfigPropertyper inserire il valore della chiave/application/config.messagedall'archivio di Configurazione app nelvaluecampo e restituisce il valore nel servizio REST.Aprire lo unit test generato automaticamente, che si trova nel file GreetingResourceTest.java nella directory src/test/java/com/example . Sostituire il contenuto del file con il codice seguente:
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")); } }Il codice modificato asserisce che il valore restituito dal servizio REST è uguale al valore nell'archivio di Configurazione app. Questo valore è
Hellorelativo alla chiave/application/config.messageaggiunta in precedenza.
Queste modifiche al codice apportate all'applicazione sono tutte necessarie. Prima di eseguire l'applicazione, è necessario configurare l'autenticazione e la connessione all'archivio di Configurazione app.
Configurare l'autenticazione su App Configuration store
Oltre all'autenticazione con le chiavi di accesso, l'estensione Configurazione app di Azure Quarkus supporta l'autenticazione con l'ID Microsoft Entra usando DefaultAzureCredential dalla libreria client di Identità di Azure.
In questa guida introduttiva si userà l'ID Microsoft Entra per l'autenticazione. Per altre informazioni, vedere DefaultAzureCredential la libreria client di Identità di Azure per Java.
Configurare l'autenticazione nello store di configurazione dell'app seguendo i passaggi seguenti:
Impostare le variabili di ambiente usando i comandi seguenti, sostituendo i
<...>segnaposto con i valori creati in precedenza:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Usare i comandi seguenti per assegnare il
App Configuration Data Readerruolo all'utente connesso:# 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_IDEsporta l'endpoint dell'archivio di Configurazione app in una variabile di ambiente denominata
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTusando il comando seguente:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Annotazioni
Il valore della variabile di ambiente viene usato nella proprietà
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTdi configurazione dell'estensione Configurazione app di Azure Quarkus per configurarequarkus.azure.app.configuration.endpointla connessione all'archivio di Configurazione app di Azure. In alternativa, è possibile configurare questa proprietà nel file application.properties nella directory src/main/resources impostandola direttamente, come nell'esempio seguente. Assicurarsi di sostituire<your-app-configuration-store-endpoint>con il valore effettivo.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Compilare ed eseguire l'app in locale
Compilare ed eseguire l'app in locale seguendo questa procedura:
Usare i comandi seguenti per compilare ed eseguire l'app in modalità JVM:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarAnnotazioni
In alternativa, è possibile eseguire l'esempio in modalità nativa. Per usare la modalità nativa, è necessario installare GraalVM o usare un'immagine del generatore per compilare l'eseguibile nativo. Per altre informazioni, vedere Compilazione di un eseguibile nativo. Questa guida introduttiva rapida utilizza Docker come ambiente di runtime del contenitore per creare un eseguibile nativo per Linux. Se Docker non è installato, è possibile scaricarlo dal sito Web Docker.
Usare i comandi seguenti per compilare ed eseguire l'eseguibile nativo in un ambiente Linux:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerTestare l'applicazione usando il comando seguente:
curl localhost:8080/helloDovresti vedere
Hellonell'output, perchéHelloè il valore della chiave/application/config.messageche hai aggiunto all'archivio di configurazione delle app.Premere CTRL+C per arrestare l'applicazione.
Pulire le risorse
Per evitare addebiti di Azure, è consigliabile pulire le risorse non necessarie. Quando non è più necessario l'archivio di Configurazione app, usare il comando seguente per rimuovere il gruppo di risorse e tutte le risorse correlate:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Vedere anche
- Configurazione app di Azure Quarkus
- Proteggere le applicazioni Quarkus con Microsoft Entra ID con OpenID Connect
- Distribuire un'applicazione Java con Quarkus in App Contenitore di Azure
- Distribuire un'applicazione Java con Quarkus in un cluster servizio Azure Kubernetes
- Distribuire app Java serverless con Quarkus in Funzioni di Azure