Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku, dotyczącym szybkiego startu, zaimplementujesz usługę Azure App Configuration w aplikacji Java Quarkus, aby scentralizować przechowywanie i zarządzanie ustawieniami aplikacji oddzielnie od kodu.
Wymagania wstępne
- Konto Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Interfejs wiersza polecenia platformy Azure w wersji 2.68.0 lub nowszej.
- Sklep z konfiguracjami aplikacji. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie magazynu usługi Azure App Configuration.
- Java Development Kit (JDK) w wersji 17.
- Apache Maven w wersji 3.9.8 lub nowszej.
Dodawanie pary klucz-wartość
Dodaj następującą parę klucz-wartość do sklepu App Configuration. Aby uzyskać więcej informacji na temat dodawania par klucz-wartość do magazynu przy użyciu interfejsu wiersza polecenia platformy Azure, zobacz Tworzenie pary klucz-wartość.
| Key | Wartość |
|---|---|
| /application/config.message | Hello (Cześć) |
Tworzenie aplikacji Quarkus
W tej sekcji utworzysz aplikację Quarkus z rozszerzeniem Azure App Configuration i rozszerzeniem REST. Rozszerzenie REST służy do tworzenia usługi REST, która zwraca wartość konfiguracji ze sklepu App Configuration. Aby uzyskać więcej informacji, zobacz Quarkus Azure App Configuration.
Utwórz aplikację Quarkus przy użyciu następującego polecenia:
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"
Aplikacja jest tworzona w nowym katalogu o nazwie quarkus-app-configuration. Oto struktura aplikacji:
quarkus-app-configuration
├── src
│ ├── main/java/com/example
│ │ ├── GreetingResource.java
│ └── test/java/com/example
│ └── GreetingResourceTest.java
├── pom.xml
Plik pom.xml zawiera zależności aplikacji, w tym rozszerzenie usługi Azure App Configuration i rozszerzenie REST. Poniższy kod XML jest typowym przykładem:
<dependency>
<groupId>io.quarkiverse.azureservices</groupId>
<artifactId>quarkus-azure-app-configuration</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
Plik GreetingResource.java zawiera usługę REST. Zmodyfikujesz ten plik, aby później zwrócić wartość konfiguracji ze sklepu App Configuration.
Plik GreetingResourceTest.java zawiera test jednostkowy usługi REST. Zmodyfikujesz ten plik, aby potwierdzić, że wartość zwrócona z usługi REST jest równa wartości w magazynie App Configuration w późniejszym czasie.
Nawiązanie połączenia ze sklepem App Configuration
Teraz, gdy masz sklep App Configuration i aplikację Quarkus z rozszerzeniem Azure App Configuration, możesz połączyć aplikację ze sklepem.
Kodowanie aplikacji
Skonfiguruj aplikację, wykonując następujące kroki:
Otwórz plik GreetingResource.java w katalogu src/main/java/com/example i zastąp zawartość następującym kodem:
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; } }Zmodyfikowany kod wykorzystuje adnotację MicroProfile Config
@ConfigPropertydo wstrzyknięcia wartości klucza/application/config.messagez magazynu konfiguracji aplikacji do polavalue, a następnie zwraca wartość w usłudze REST.Otwórz automatycznie wygenerowany test jednostkowy, który znajduje się w pliku GreetingResourceTest.java w katalogu src/test/java/com/example . Zastąp zawartość pliku następującym kodem:
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")); } }Zmodyfikowany kod zapewnia, że wartość zwrócona z usługi REST jest równa wartości w usłudze App Configuration. Ta wartość to
Hellodla klucza/application/config.message, który został dodany wcześniej.
Wszystkie te zmiany kodu w aplikacji są wymagane. Przed uruchomieniem aplikacji musisz skonfigurować uwierzytelnianie i połączenie z usługą App Configuration.
Konfigurowanie uwierzytelniania w sklepie App Configuration
Oprócz uwierzytelniania za pomocą kluczy dostępu rozszerzenie Quarkus Azure App Configuration obsługuje uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft przy użyciu biblioteki DefaultAzureCredential klienta tożsamości platformy Azure.
Używasz Microsoft Entra ID do uwierzytelniania w tym szybkim rozpoczęciu. Aby uzyskać więcej informacji, zobacz DefaultAzureCredentialw bibliotece klienta tożsamości platformy Azure dla języka Java.
Aby skonfigurować uwierzytelnianie w magazynie App Configuration, wykonaj następujące kroki:
Ustaw zmienne środowiskowe przy użyciu następujących poleceń, zastępując
<...>symbole zastępcze utworzonymi wcześniej wartościami:export RESOURCE_GROUP_NAME="<resource-group-name>" export APP_CONFIG_NAME="<app-configuration-store-name>"Użyj następujących poleceń, aby przypisać
App Configuration Data Readerrolę do zalogowanego użytkownika:# 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_IDWyeksportuj punkt końcowy magazynu App Configuration do zmiennej środowiskowej o nazwie
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTprzy użyciu następującego polecenia:export QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT=$(az appconfig show \ --resource-group "${RESOURCE_GROUP_NAME}" \ --name "${APP_CONFIG_NAME}" \ --query endpoint \ --output tsv)Uwaga / Notatka
Wartość zmiennej środowiskowej
QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINTjest używana w atrybucie konfiguracjiquarkus.azure.app.configuration.endpointrozszerzenia Quarkus Azure App Configuration, aby skonfigurować połączenie ze sklepem usługi Azure App Configuration. Alternatywnie tę właściwość można skonfigurować w pliku application.properties w katalogu src/main/resources , ustawiając ją bezpośrednio, jak w poniższym przykładzie. Pamiętaj, aby zastąpić<your-app-configuration-store-endpoint>swoją rzeczywistą wartością.quarkus.azure.app.configuration.endpoint=<your-app-configuration-store-endpoint>
Lokalne kompilowanie i uruchamianie aplikacji
Skompiluj i uruchom aplikację lokalnie, wykonując następujące kroki:
Użyj następujących poleceń, aby skompilować i uruchomić aplikację w trybie JVM:
# Build, test and package the app mvn clean package # Run the app java -jar ./target/quarkus-app/quarkus-run.jarUwaga / Notatka
Alternatywnie możesz uruchomić przykład w trybie natywnym. Aby użyć trybu natywnego, musisz mieć zainstalowany GraalVM lub użyć obrazu budującego do stworzenia natywnego pliku wykonywalnego. Aby uzyskać więcej informacji, zobacz Tworzenie natywnego pliku wykonywalnego. Ten przewodnik Szybki start używa platformy Docker jako środowiska uruchomieniowego kontenera do tworzenia natywnego pliku wykonywalnego systemu Linux. Jeśli nie masz zainstalowanej platformy Docker, możesz pobrać ją z witryny internetowej platformy Docker.
Użyj następujących poleceń, aby skompilować i wykonać natywny plik wykonywalny w środowisku systemu Linux:
mvn package -Dnative -Dquarkus.native.container-build ./target/storage-blob-1.0.0-SNAPSHOT-runnerPrzetestuj aplikację przy użyciu następującego polecenia:
curl localhost:8080/helloPowinieneś zobaczyć
Hellow danych wyjściowych, ponieważHellojest wartością klucza/application/config.messagedodanego do magazynu konfiguracji aplikacji.Naciśnij Control+C , aby zatrzymać aplikację.
Uprzątnij zasoby
Aby uniknąć opłat za platformę Azure, należy wyczyścić niepotrzebne zasoby. Jeśli magazyn App Configuration nie jest już potrzebny, użyj następującego polecenia, aby usunąć grupę zasobów i wszystkie powiązane zasoby:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Zobacz także
- Konfiguracja aplikacji platformy Azure quarkus
- Zabezpieczanie aplikacji Quarkus przy użyciu identyfikatora Entra firmy Microsoft przy użyciu protokołu OpenID Connect
- Wdrażanie aplikacji Java za pomocą aplikacji Quarkus w usłudze Azure Container Apps
- Wdrażanie aplikacji Java za pomocą aplikacji Quarkus w klastrze usługi Azure Kubernetes Service
- Wdrażanie bezserwerowych aplikacji Java za pomocą aplikacji Quarkus w usłudze Azure Functions