Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart neemt u Azure App Configuration op in een Java Quarkus-app om opslag en beheer van toepassingsinstellingen gescheiden van uw code te centraliseren.
Vereiste voorwaarden
- Een Azure-account met een actief abonnement. Maak gratis een account.
- Azure CLI 2.68.0 of hoger.
- Een App Configuration-winkel. Zie quickstart: Een Azure App Configuration-archief maken voor meer informatie.
- Java Development Kit (JDK) versie 17.
- Apache Maven versie 3.9.8 of hoger.
Een sleutel-waardepaar toevoegen
Voeg het volgende sleutel-waardepaar toe aan het App Configuration-archief. Zie Een sleutelwaarde maken voor meer informatie over het toevoegen van sleutel-waardeparen aan een winkel met behulp van de Azure CLI.
| Key | Waarde |
|---|---|
| /application/config.message | Hello (Hallo) |
Een Quarkus-app maken
In deze sectie maakt u een Quarkus-app met de Azure App Configuration-extensie en de REST-extensie. De REST-extensie wordt gebruikt om een REST-service te maken die de configuratiewaarde uit het App Configuration-archief retourneert. Zie Quarkus Azure App Configuration voor meer informatie.
Maak een Quarkus-app met behulp van de volgende opdracht:
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"
De app wordt gemaakt in een nieuwe map met de naam quarkus-app-configuration. Dit is de structuur van de app:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Het bestandpom.xml bevat de afhankelijkheden voor de app, waaronder de Azure App Configuration-extensie en de REST-extensie. De volgende XML is een typisch voorbeeld:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Het bestand GreetingResource.java bevat de REST-service. U wijzigt dit bestand om de configuratiewaarde later uit het App Configuration-archief te retourneren.
Het bestand GreetingResourceTest.java bevat de eenheidstest voor de REST-service. U wijzigt dit bestand om te bevestigen dat de waarde die wordt geretourneerd door de REST-service, gelijk is aan de waarde in het App Configuration-archief later.
Verbinding maken met een App Configuration-winkel
Nu u een App Configuration-archief en een Quarkus-app hebt met de Azure App Configuration-extensie, kunt u de app verbinden met de store.
De toepassing coderen
Configureer de toepassing met behulp van de volgende stappen:
Open het bestand GreetingResource.java in de map src/main/java/com/example en vervang de inhoud door de volgende code:
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; } }De gewijzigde code maakt gebruik van de microprofile-configuratieaantekening
@ConfigPropertyom de waarde van de sleutel/application/config.messageuit het App Configuration-archief in hetvalueveld te injecteren en retourneert de waarde in de REST-service.Open de automatisch gegenereerde eenheidstest, die zich in het GreetingResourceTest.java bestand in de map src/test/java/com/example bevindt. Vervang de inhoud van het bestand door de volgende code:
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")); } }De gewijzigde code bevestigt dat de waarde die wordt geretourneerd door de REST-service gelijk is aan de waarde in het App Configuration-archief. Deze waarde is
Hellovoor de sleutel/application/config.messagedie u eerder hebt toegevoegd.
Deze codewijzigingen in de toepassing zijn allemaal vereist. Voordat u de toepassing uitvoert, moet u de verificatie en verbinding met het App Configuration-archief configureren.
Verificatie configureren voor de App Configuration-configuratiewinkel
Naast verificatie met toegangssleutels ondersteunt de Quarkus Azure App Configuration-extensie verificatie met Microsoft Entra-id met behulp DefaultAzureCredential van de Azure Identity-clientbibliotheek.
In deze quickstart gebruikt u Microsoft Entra ID voor verificatie. Zie de DefaultAzureCredential meer informatie.
Authenticatie configureren voor de App Configuration-opslag door de volgende stappen uit te voeren:
Stel omgevingsvariabelen in met behulp van de volgende opdrachten, waarbij u de
<...>tijdelijke aanduidingen vervangt door de waarden die u eerder hebt gemaakt:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Gebruik de volgende opdrachten om de
App Configuration Data Readerrol toe te wijzen aan de aangemelde gebruiker:# 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_IDExporteer het eindpunt van het App Configuration-archief naar een omgevingsvariabele met de volgende
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTopdracht:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Opmerking
De waarde van de omgevingsvariabele
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTwordt gebruikt in de configuratie-eigenschapquarkus.azure.app.configuration.endpointvan de Quarkus Azure App Configuration-extensie om de verbinding met het Azure App Configuration-archief in te stellen. U kunt deze eigenschap ook configureren in het bestand application.properties in de map src/main/resources door deze rechtstreeks in te stellen, zoals in het volgende voorbeeld. Zorg ervoor dat u<your-app-configuration-store-endpoint>vervangt door uw werkelijke waarde.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
De app lokaal bouwen en uitvoeren
Bouw en voer de app lokaal uit met behulp van de volgende stappen:
Gebruik de volgende opdrachten om de app te bouwen en uit te voeren in de JVM-modus:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarOpmerking
Als alternatief kunt u het voorbeeld uitvoeren in de systeemeigen modus. Als u de systeemeigen modus wilt gebruiken, moet u GraalVM geïnstalleerd hebben of een builder-image gebruiken om een native uitvoerbaar bestand te maken. Zie Een systeemeigen uitvoerbaar bestand bouwen voor meer informatie. In deze quickstart wordt Docker gebruikt als containerruntime om een systeemeigen uitvoerbaar Linux-bestand te bouwen. Als u Docker niet hebt geïnstalleerd, kunt u dit downloaden vanaf de Docker-website.
Gebruik de volgende opdrachten om het systeemeigen uitvoerbare bestand te bouwen en uit te voeren in een Linux-omgeving:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerTest uw toepassing met behulp van de volgende opdracht:
curl localhost:8080/helloU ziet
Helloin de uitvoer, omdatHellode waarde is van de/application/config.messagesleutel die u hebt toegevoegd aan de App Configuration-opslag.Druk op Control+C om de toepassing te stoppen.
De hulpbronnen opschonen
Om Azure-kosten te vermijden, moet u overbodige resources opschonen. Wanneer u het App Configuration-archief niet meer nodig hebt, gebruikt u de volgende opdracht om de resourcegroep en alle gerelateerde resources te verwijderen:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Zie ook
- Quarkus Azure App Configuration
- Secure Quarkus-toepassingen met Microsoft Entra ID met behulp van OpenID Connect
- Een Java-toepassing implementeren met Quarkus in Azure Container Apps
- Een Java-toepassing implementeren met Quarkus in een Azure Kubernetes Service-cluster
- Serverloze Java-apps implementeren met Quarkus in Azure Functions