Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung integrieren Sie die Azure-App-Konfiguration in eine Java Aspxus-App, um den Speicher und die Verwaltung von Anwendungseinstellungen getrennt von Ihrem Code zu zentralisieren.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto.
- Azure CLI 2.68.0 oder höher.
- Ein App-Konfigurationsspeicher. Weitere Informationen finden Sie in der Schnellstartanleitung: Erstellen eines Azure App-Konfigurationsspeichers.
- Java Development Kit (JDK) Version 17.
- Apache Maven Version 3.9.8 oder höher.
Hinzufügen eines Schlüsselwertpaars
Fügen Sie dem App-Konfigurationsspeicher das folgende Schlüssel-Wert-Paar hinzu. Weitere Informationen zum Hinzufügen von Schlüssel-Wert-Paaren zu einem Speicher mithilfe der Azure CLI finden Sie unter Erstellen eines Schlüsselwerts.
| Key | Wert |
|---|---|
| /application/config.message | Hallo |
Erstellen einer Quarkus-App
In diesem Abschnitt erstellen Sie eine Quarkus-App mit der Azure-App-Konfigurationserweiterung und der REST-Erweiterung. Die REST-Erweiterung wird verwendet, um einen REST-Dienst zu erstellen, der den Konfigurationswert aus dem App-Konfigurationsspeicher zurückgibt. Weitere Informationen finden Sie unter Quarkus Azure App Configuration.
Erstellen Sie eine Quarkus-App mithilfe des folgenden Befehls:
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"
Die App wird in einem neuen Verzeichnis mit dem Namen "quarkus-app-configuration" erstellt. Dies ist die Struktur der App:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Die pom.xml Datei enthält die Abhängigkeiten für die App, einschließlich der Azure AppKonfigurationserweiterung und der REST-Erweiterung. Der folgende XML-Code ist ein typisches Beispiel:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Die datei GreetingResource.java enthält den REST-Dienst. Sie ändern diese Datei, um den Konfigurationswert später aus dem App-Konfigurationsspeicher zurückzugeben.
Die datei GreetingResourceTest.java enthält den Komponententest für den REST-Dienst. Sie ändern diese Datei so, dass der vom REST-Dienst zurückgegebene Wert dem Wert im App-Konfigurationsspeicher später entspricht.
Herstellen einer Verbindung mit einem App Configuration-Speicher
Nachdem Sie nun über einen App Configuration-Store und eine Quarkus-App mit der Azure App Configuration-Erweiterung verfügen, können Sie die App mit dem Store verbinden.
Codieren der Anwendung
Konfigurieren Sie die Anwendung mithilfe der folgenden Schritte:
Öffnen Sie die GreetingResource.java Datei im Verzeichnis "src/main/java/com/example ", und ersetzen Sie den Inhalt durch den folgenden 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; } }Der geänderte Code verwendet die MicroProfile Config-Anmerkung
@ConfigProperty, um den Wert des Schlüssels/application/config.messageaus dem App-Konfigurationsspeicher in dasvalueFeld einzufügen, und gibt den Wert im REST-Dienst zurück.Öffnen Sie den automatisch generierten Komponententest, der sich in der datei GreetingResourceTest.java im Verzeichnis "src/test/java/com/example " befindet. Ersetzen Sie den Inhalt der Datei durch den folgenden 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")); } }Der geänderte Code bestätigt, dass der vom REST-Dienst zurückgegebene Wert dem Wert im App-Konfigurationsspeicher entspricht. Dieser Wert gilt
Hellofür den Schlüssel/application/config.message, den Sie zuvor hinzugefügt haben.
Diese Codeänderungen an der Anwendung sind alle erforderlich. Bevor Sie die Anwendung ausführen, müssen Sie die Authentifizierung und Verbindung mit dem App-Konfigurationsspeicher konfigurieren.
Konfigurieren der Authentifizierung für den App Configuration Store
Neben der Authentifizierung mit Zugriffsschlüsseln unterstützt die Azure-App-Konfigurationserweiterung die Authentifizierung mit Microsoft Entra ID mithilfe von DefaultAzureCredential aus der Azure Identity-Clientbibliothek.
Sie verwenden die Microsoft Entra-ID für die Authentifizierung in dieser Schnellstartanleitung. Weitere Informationen finden Sie in DefaultAzureCredential der Azure Identity-Clientbibliothek für Java.
Konfigurieren Sie die Authentifizierung für den App-Konfigurationsspeicher mithilfe der folgenden Schritte:
Legen Sie Umgebungsvariablen mithilfe der folgenden Befehle fest, und ersetzen Sie die
<...>Platzhalter durch die Werte, die Sie zuvor erstellt haben:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Verwenden Sie die folgenden Befehle, um die
App Configuration Data ReaderRolle dem angemeldeten Benutzer zuzuweisen:# 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_IDExportieren Sie den Endpunkt des App-Konfigurationsspeichers in eine Umgebungsvariable, die mit dem folgenden Befehl benannt wird
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)Hinweis
Der Wert der Umgebungsvariable
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTwird in der Konfigurationseigenschaftquarkus.azure.app.configuration.endpointder Azure-App-Konfigurationserweiterung Von Quarkus verwendet, um die Verbindung zum Azure App Configuration Store einzurichten. Alternativ können Sie diese Eigenschaft in der Datei "application.properties " im Verzeichnis "src/main/resources " konfigurieren, indem Sie sie wie im folgenden Beispiel direkt festlegen. Achten Sie darauf,<your-app-configuration-store-endpoint>durch den tatsächlichen Wert zu ersetzen.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Lokales Erstellen und Ausführen der App
Erstellen und ausführen Sie die App lokal, indem Sie die folgenden Schritte ausführen:
Verwenden Sie die folgenden Befehle, um die App im JVM-Modus zu erstellen und auszuführen:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarHinweis
Alternativ können Sie das Beispiel im nativen Modus ausführen. Um den nativen Modus zu verwenden, müssen Sie GraalVM installiert haben oder ein Generatorimage verwenden, um die native ausführbare Datei zu erstellen. Weitere Informationen finden Sie unter Erstellen einer nativen ausführbaren Datei. Diese Schnellstartanleitung verwendet Docker als Containerlaufzeit, um eine systemeigene ausführbare Linux-Datei zu erstellen. Wenn Sie Docker nicht installiert haben, können Sie es von der Docker-Website herunterladen.
Verwenden Sie die folgenden Befehle, um die systemeigene ausführbare Datei in einer Linux-Umgebung zu erstellen und auszuführen:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerTesten Sie Ihre Anwendung mithilfe des folgenden Befehls:
curl localhost:8080/helloSie sollten
Helloin der Ausgabe sehen, daHelloder Wert des/application/config.message-Schlüssels ist, den Sie dem App-Konfigurationsspeicher hinzugefügt haben.Drücken Sie CTRL+C , um die Anwendung zu beenden.
Bereinigen von Ressourcen
Zum Vermeiden von Azure-Gebühren sollten Sie nicht benötigte Ressourcen bereinigen. Wenn Sie den App-Konfigurationsspeicher nicht mehr benötigen, verwenden Sie den folgenden Befehl, um die Ressourcengruppe und alle zugehörigen Ressourcen zu entfernen:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Siehe auch
- Quarkus Azure-App-Konfiguration
- Sichern von Quarkus-Anwendungen mit Microsoft Entra ID und OpenID Connect
- Bereitstellen einer Java-Anwendung mit Quarkus in Azure-Container-Apps
- Bereitstellen einer Java-Anwendung mit Quarkus in einem Azure Kubernetes Service-Cluster
- Bereitstellen serverloser Java-Apps mit Quarkus auf Azure Functions