Rövid útmutató: Java Quarkus-alkalmazás létrehozása az Azure App Configuration használatával

Ebben a rövid útmutatóban az Azure-alkalmazáskonfigurációt egy Java Quarkus-alkalmazásba építi be, hogy a kódtól elkülönítve központosítsa az alkalmazásbeállítások tárolását és kezelését.

Előfeltételek

Kulcs-érték pár hozzáadása

Adja hozzá a következő kulcs-érték párot az Alkalmazáskonfiguráció tárhoz. További információért arról, hogyan adhat hozzá kulcs-érték párokat egy áruházhoz az Azure CLI használatával, lásd a Kulcs-érték párok létrehozása című témakört.

Key Érték
/application/config.message Üdvözöljük

Quarkus-alkalmazás létrehozása

Ebben a szakaszban egy Quarkus-alkalmazást hoz létre az Azure App Configuration és a REST kiterjesztéssel. A REST-bővítmény egy REST-szolgáltatás létrehozásához használható, amely visszaadja a konfigurációs értéket az App Configuration Store-ból. További információ: Quarkus Azure App Configuration.

Hozzon létre egy Quarkus-alkalmazást a következő paranccsal:

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"

Az alkalmazás egy quarkus-app-configuration nevű új könyvtárban jön létre. Az alkalmazás felépítése:

quarkus-app-configuration
├── src
│   ├── main/java/com/example
│   │   ├── GreetingResource.java
│   └── test/java/com/example
│       └── GreetingResourceTest.java
├── pom.xml

A pom.xml fájl tartalmazza az alkalmazás függőségeit, beleértve az Azure App Configuration bővítményt és a REST-bővítményt. A következő XML egy tipikus példa:

<dependency>
    <groupId>io.quarkiverse.azureservices</groupId>
    <artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-rest</artifactId>
</dependency>

A GreetingResource.java fájl tartalmazza a REST szolgáltatást. Ezt a fájlt úgy módosíthatja, hogy később visszaadja a konfigurációs értéket az App Configuration Store-ból.

A GreetingResourceTest.java fájl tartalmazza a REST szolgáltatás egységtesztét. A fájlt úgy módosítja, hogy a REST szolgáltatásból visszaadott érték megegyezik az App Configuration Store későbbi verziójában megadott értékkel.

Csatlakozás alkalmazáskonfigurációs áruházhoz

Most, hogy rendelkezik egy Alkalmazáskonfigurációs áruházral és egy Quarkus-alkalmazással az Azure App Configuration bővítménysel, csatlakoztathatja az alkalmazást az áruházhoz.

Az alkalmazás kódolása

Konfigurálja az alkalmazást az alábbi lépésekkel:

  1. Nyissa meg a GreetingResource.java fájlt az src/main/java/com/example könyvtárban, és cserélje le a tartalmat a következő kódra:

    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;
        }
    }
    

    A módosított kód a MicroProfile Config @ConfigProperty annotation használatával injektálja a kulcs /application/config.message értékét az App Configuration Store-ból a value mezőbe, és visszaadja az értéket a REST szolgáltatásban.

  2. Nyissa meg az automatikusan létrehozott egységtesztet, amely az src/test/java/com/example könyvtár GreetingResourceTest.java fájljában található. Cserélje le a fájl tartalmát a következő kódra:

    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"));
        }
    }
    

    A módosított kód azt állítja, hogy a REST szolgáltatásból visszaadott érték megegyezik az App Configuration Store értékével. Ez az Hello érték a korábban hozzáadott kulcshoz /application/config.message tartozik.

Ezek a módosítások az alkalmazás kódjában mind szükségesek. Az alkalmazás futtatása előtt konfigurálnia kell a hitelesítést és a kapcsolatot az Alkalmazáskonfigurációs áruházhoz.

Hitelesítés konfigurálása az Alkalmazáskonfigurációs áruházban

A hozzáférési kulcsokkal való hitelesítés mellett a Quarkus Azure App Configuration bővítmény támogatja a Microsoft Entra ID-val való DefaultAzureCredential hitelesítést az Azure Identity ügyfélkódtárából.

Ebben a rövid útmutatóban a Microsoft Entra ID azonosítót használja a hitelesítéshez. További információt a DefaultAzureCredential talál.

Az alkalmazáskonfigurációs tároló hitelesítésének konfigurálása az alábbi lépések végrehajtásával:

  1. Állítsa be a környezeti változókat az alábbi parancsokkal, és cserélje le a <...> helyőrzőket a korábban létrehozott értékekre:

    export RESOURCE_GROUP_NAME="<resource-group-name>"
    export APP_CONFIG_NAME="<app-configuration-store-name>"
    
  2. A következő parancsokkal rendelje hozzá a App Configuration Data Reader szerepkört a bejelentkezett felhasználóhoz:

    # 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_ID
    
  3. Exportálja az App Configuration Store végpontját egy, a következő paranccsal elnevezett QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT környezeti változóba:

    export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \
        --resource-group "${RESOURCE_GROUP_NAME}" \
        --name "${APP_CONFIG_NAME}" \
        --query endpoint \
        --output tsv)
    

    Megjegyzés:

    A környezeti változó QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT értékét a Quarkus Azure App Configuration bővítmény konfigurációs tulajdonságában quarkus.azure.app.configuration.endpoint használja a rendszer az Azure App Configuration Store-hoz való kapcsolat beállításához. Másik lehetőségként konfigurálhatja ezt a tulajdonságot az application.properties fájlban az src/main/resources könyvtárban úgy, hogy közvetlenül állítja be, ahogyan az alábbi példában is látható. Ügyeljen arra, hogy a tényleges értékre cserélje le <your-app-configuration-store-endpoint> .

    quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
    

Az alkalmazás helyi létrehozása és futtatása

Az alkalmazás helyi létrehozása és futtatása az alábbi lépésekkel:

  1. Az alkalmazás JVM módban való létrehozásához és futtatásához használja az alábbi parancsokat:

    # Build, test and package the app
    mvn clean package
    
    # Run the app
    java -jar ./target/quarkus-app/quarkus-run.jar
    

    Megjegyzés:

    Másik lehetőségként natív módban is futtathatja a mintát. A natív mód használatához telepítenie kell a GraalVM-et, vagy egy szerkesztőrendszerképet kell használnia a natív végrehajtható fájl létrehozásához. További információ: Natív végrehajtható fájl létrehozása. Ez a rövid útmutató a Dockert használja tároló-futtatókörnyezetként egy natív Linux-végrehajtható fájl létrehozásához. Ha nincs telepítve a Docker, letöltheti a Docker webhelyéről.

    Az alábbi parancsokkal hozhatja létre és hajthatja végre a natív végrehajtható fájlokat Linux-környezetben:

    mvn package -Dnative -Dquarkus.native.container-build
    ./target/storage-blob-1.0.0-SNAPSHOT-runner
    
  2. Tesztelje az alkalmazást a következő paranccsal:

    curl localhost:8080/hello
    

    A kimenetben meg kell jelennie Hello, mert Hello az App Configuration áruházhoz hozzáadott /application/config.message kulcs értéke.

  3. Az alkalmazás leállításához nyomja le a Control+C billentyűt.

Erőforrások tisztítása

Az Azure-díjak elkerülése érdekében távolítsa el a szükségtelen erőforrásokat. Ha már nincs szüksége az Alkalmazáskonfigurációs tárolóra, az alábbi paranccsal távolítsa el az erőforráscsoportot és az összes kapcsolódó erőforrást:

az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait

Lásd még