Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten införlivar du Azure App Configuration i en Java Quarkus-app för att centralisera lagring och hantering av programinställningar separat från din kod.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.
- Azure CLI 2.68.0 eller senare.
- En konfigurationsbutik för appar. Mer information finns i Snabbstart: Skapa ett Azure App Configuration Store.
- Java Development Kit (JDK) version 17.
- Apache Maven version 3.9.8 eller senare.
Lägga till ett nyckel/värde-par
Lägg till följande nyckel/värde-par i App Configuration Store. Mer information om hur du lägger till nyckel/värde-par i ett lager med hjälp av Azure CLI finns i Skapa ett nyckelvärde.
| Key | Värde |
|---|---|
| /application/config.message | Hello (Hej) |
Skapa en Quarkus-app
I det här avsnittet skapar du en Quarkus-app med Azure App Configuration-tillägget och REST-tillägget. REST-tillägget används för att skapa en REST-tjänst som returnerar konfigurationsvärdet från App Configuration Store. Mer information finns i Quarkus Azure App Configuration.
Skapa en Quarkus-app med hjälp av följande kommando:
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"
Appen skapas i en ny katalog med namnet quarkus-app-configuration. Här är appens struktur:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Filen pom.xml innehåller beroenden för appen, inklusive Azure App Configuration-tillägget och REST-tillägget. Följande XML är ett typiskt exempel:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Filen GreetingResource.java innehåller REST-tjänsten. Du ändrar den här filen för att returnera konfigurationsvärdet från App Configuration Store senare.
Filen GreetingResourceTest.java innehåller enhetstestet för REST-tjänsten. Du ändrar den här filen för att bekräfta att värdet som returneras från REST-tjänsten är lika med värdet i App Configuration Store senare.
Anslut till en App Configuration-lagring
Nu när du har ett appkonfigurationsarkiv och en Quarkus-app med Azure App Configuration-tillägget kan du ansluta appen till butiken.
Koda appen
Konfigurera programmet med hjälp av följande steg:
Öppna filen GreetingResource.java i katalogen src/main/java/com/example och ersätt innehållet med följande kod:
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; } }Den ändrade koden använder MicroProfile Config-kommentaren
@ConfigPropertyför att mata in värdet för nyckeln/application/config.messagefrån App Configuration Store ivaluefältet och returnerar värdet i REST-tjänsten.Öppna det automatiskt genererade enhetstestet, som finns i filen GreetingResourceTest.java i katalogen src/test/java/com/example . Ersätt innehållet i filen med följande kod:
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")); } }Den ändrade koden anger att värdet som returneras från REST-tjänsten är lika med värdet i App Configuration Store. Det här värdet är
Helloför nyckeln/application/config.messagesom du lade till tidigare.
Alla dessa kodändringar i programmet krävs. Innan du kör programmet måste du konfigurera autentiseringen och anslutningen till App Configuration Store.
Konfigurera autentisering till App Configuration Store
Förutom autentisering med åtkomstnycklar stöder Quarkus Azure App Configuration-tillägget autentisering med Microsoft Entra-ID som använder DefaultAzureCredential från Azure Identity-klientbiblioteket.
Du använder Microsoft Entra-ID för autentisering i den här snabbstarten. Mer information DefaultAzureCredential finns i Azure Identity-klientbiblioteket för Java.
Konfigurera autentisering till App Configuration Store med hjälp av följande steg:
Ange miljövariabler med hjälp av följande kommandon och ersätt
<...>platshållarna med de värden som du skapade tidigare:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Använd följande kommandon för att tilldela
App Configuration Data Readerrollen till den inloggade användaren:# 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_IDExportera slutpunkten för App Configuration Store till en miljövariabel med namnet
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTmed hjälp av följande kommando:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Anmärkning
Värdet för miljövariabeln
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTanvänds i konfigurationsegenskapenquarkus.azure.app.configuration.endpointför Quarkus Azure App Configuration-tillägget för att konfigurera anslutningen till Azure App Configuration Store. Du kan också konfigurera den här egenskapen i filen application.properties i katalogen src/main/resources genom att ange den direkt, som i följande exempel. Se till att ersätta<your-app-configuration-store-endpoint>med ditt faktiska värde.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Skapa och köra appen lokalt
Skapa och kör appen lokalt med hjälp av följande steg:
Använd följande kommandon för att skapa och köra appen i JVM-läge:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarAnmärkning
Alternativt kan du köra exemplet i inbyggt läge. Om du vill använda inbyggt läge måste du ha GraalVM installerat eller använda en builder-avbildning för att skapa den inbyggda körbara filen. Mer information finns i Skapa en intern körbar fil. Den här snabbstarten använder Docker som container-runtime för att skapa en Linux-nativ körbar fil. Om du inte har Docker installerat kan du ladda ned det från Docker-webbplatsen.
Använd följande kommandon för att skapa och köra den inbyggda körbara filen i en Linux-miljö:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerTesta programmet med hjälp av följande kommando:
curl localhost:8080/helloDu bör se
Helloi utdata eftersomHelloär värdet för/application/config.message-nyckeln du lade till i appkonfigurationslagret.Tryck på Kontroll+C för att stoppa programmet.
Rensa resurser
För att undvika Azure-avgifter bör du rensa onödiga resurser. När du inte längre behöver App Configuration Store använder du följande kommando för att ta bort resursgruppen och alla relaterade resurser:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Se även
- Quarkus Azure App Configuration
- Skydda Quarkus-program med Microsoft Entra-ID med OpenID Connect
- Distribuera ett Java-program med Quarkus i Azure Container Apps
- Distribuera ett Java-program med Quarkus i ett Azure Kubernetes Service-kluster
- Distribuera serverlösa Java-appar med Quarkus i Azure Functions