Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu začleníte Azure App Configuration do aplikace Java Quarkus, která centralizuje úložiště a správu nastavení aplikací odděleně od kódu.
Požadavky
- Účet Azure s aktivním předplatným. Vytvořte si ho zdarma.
- Azure CLI 2.68.0 nebo novější
- Úložiště konfigurace aplikací. Další informace najdete v tématu Průvodce rychlým startem: Vytvoření úložiště Azure App Configuration.
- Java Development Kit (JDK) verze 17.
- Apache Maven verze 3.9.8 nebo novější
Přidání páru klíč-hodnota
Do úložiště App Configuration přidejte následující pár klíč-hodnota. Další informace o přidání párů klíč-hodnota do úložiště pomocí Azure CLI najdete v tématu Vytvoření páru klíč-hodnota.
| Key | Hodnota |
|---|---|
| /application/config.message | Hello (Nazdar) |
Vytvoření aplikace Quarkus
V této části vytvoříte aplikaci Quarkus s rozšířením Azure App Configuration a rozšířením REST. Rozšíření REST slouží k vytvoření služby REST, která vrací hodnotu konfigurace z App Configuration Storu. Další informace najdete v tématu Quarkus Azure App Configuration.
Pomocí následujícího příkazu vytvořte aplikaci Quarkus:
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"
Aplikace se vytvoří v novém adresáři s názvem quarkus-app-configuration. Tady je struktura aplikace:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Soubor pom.xml obsahuje závislosti pro aplikaci, včetně rozšíření Azure App Configuration a rozšíření REST. Následující xml je typický příklad:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Soubor GreetingResource.java obsahuje službu REST. Tento soubor upravíte tak, aby později vrátil konfigurační hodnotu z App Configuration Storu.
Soubor GreetingResourceTest.java obsahuje test jednotek pro službu REST. Tento soubor upravíte tak, aby se hodnota vrácená ze služby REST rovnala hodnotě v App Configuration Storu později.
Připojení ke službě App Configuration Store
Teď, když máte App Configuration Store a aplikaci Quarkus s rozšířením Azure App Configuration, můžete aplikaci připojit ke Storu.
Kódování aplikace
Aplikaci nakonfigurujte pomocí následujících kroků:
Otevřete soubor GreetingResource.java v adresáři src/main/java/com/example a nahraďte jeho obsah následujícím kódem:
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; } }Upravený kód používá anotaci MicroProfile Config
@ConfigPropertyk injektování hodnoty klíče/application/config.messagez App Configuration Storevaluedo pole, která vrátí hodnotu ve službě REST.Otevřete automaticky vygenerovaný test jednotek, který je v souboru GreetingResourceTest.java v adresáři src/test/java/com/example . Obsah souboru nahraďte následujícím kódem:
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")); } }Upravený kód tvrdí, že hodnota vrácená ze služby REST se rovná hodnotě v App Configuration Storu. Tato hodnota je
Hellourčená pro klíč/application/config.message, který jste přidali dříve.
Všechny tyto změny kódu v aplikaci jsou povinné. Před spuštěním aplikace je potřeba nakonfigurovat ověřování a připojení ke službě App Configuration Store.
Nastavení ověřování pro App Configuration store
Kromě ověřování pomocí přístupových klíčů podporuje rozšíření Quarkus Azure App Configuration ověřování pomocí ID Microsoft Entra pomocí DefaultAzureCredential klientské knihovny Azure Identity.
Pro ověřování v tomto rychlém startu použijete ID Microsoft Entra. Další informace najdete DefaultAzureCredential v klientské knihovně azure Identity pro Javu.
Nakonfigurujte ověřování do app Configuration Storu pomocí následujícího postupu:
Nastavte proměnné prostředí pomocí následujících příkazů a nahraďte
<...>zástupné symboly hodnotami, které jste vytvořili dříve:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Pomocí následujících příkazů přiřaďte
App Configuration Data Readerroli přihlášenýmu uživateli:# 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_IDPomocí následujícího příkazu vyexportujte koncový bod z App Configuration Storu do proměnné prostředí s názvem
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Poznámka:
Hodnota proměnné prostředí
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTse používá ve vlastnosti konfiguracequarkus.azure.app.configuration.endpointrozšíření Quarkus Azure App Configuration k nastavení připojení k úložišti Azure App Configuration. Alternativně můžete tuto vlastnost nakonfigurovat v souboru application.properties v adresáři src/main/resources tak, že ji nastavíte přímo, jako v následujícím příkladu. Nezapomeňte nahradit<your-app-configuration-store-endpoint>skutečnou hodnotou.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Sestavení a místní spuštění aplikace
Aplikaci sestavte a spusťte místně pomocí následujícího postupu:
Pomocí následujících příkazů sestavte a spusťte aplikaci v režimu JVM:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarPoznámka:
Jako alternativu můžete ukázku spustit v nativním režimu. Pokud chcete použít nativní režim, musíte mít nainstalovaný GraalVM nebo použít image tvůrce k sestavení nativního spustitelného souboru. Další informace naleznete v tématu Sestavení nativního spustitelného souboru. V tomto rychlém průvodci se k vytvoření nativního linuxového spustitelného souboru používá Docker jako container runtime. Pokud nemáte Nainstalovaný Docker, můžete si ho stáhnout z webu Dockeru.
Pomocí následujících příkazů sestavte a spusťte nativní spustitelný soubor v linuxovém prostředí:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerOtestujte aplikaci pomocí následujícího příkazu:
curl localhost:8080/helloVe výstupu byste měli vidět
Hello, protožeHelloje hodnota/application/config.messageklíče, který jste přidali do App Configuration Storu.Stisknutím klávesy Control+C aplikaci zastavte.
Vyčistěte zdroje
Abyste se vyhnuli poplatkům za Azure, měli byste vyčistit nepotřebné prostředky. Pokud už úložiště App Configuration nepotřebujete, pomocí následujícího příkazu odeberte skupinu prostředků a všechny související prostředky:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Viz také
- Quarkus Azure App Configuration
- Zabezpečení aplikací Quarkus pomocí Microsoft Entra ID pomocí OpenID Connect
- Nasazení aplikace v Javě pomocí Quarkus v Azure Container Apps
- Nasazení aplikace v Javě s Quarkus v clusteru Azure Kubernetes Service
- Nasazení bezserverových aplikací v Javě pomocí Quarkus ve službě Azure Functions