Mulai Cepat: Membuat aplikasi Java Quarkus dengan Azure App Configuration

Dalam panduan cepat ini, Anda mengintegrasikan Azure App Configuration dengan aplikasi Java Quarkus untuk memusatkan penyimpanan dan pengelolaan pengaturan aplikasi yang terpisah dari kode aplikasi.

Prasyarat

Menambahkan pasangan kunci-nilai

Tambahkan padanan kunci-nilai berikut ke Store Konfigurasi Aplikasi. Untuk informasi selengkapnya tentang cara menambahkan pasangan kunci-nilai ke penyimpanan menggunakan Azure CLI, lihat Membuat nilai kunci.

Key Nilai
/application/config.message Halo

Membuat aplikasi Quarkus

Di bagian ini, Anda membuat aplikasi Quarkus dengan ekstensi Azure App Configuration dan ekstensi REST. Ekstensi REST digunakan untuk membuat layanan REST yang mengembalikan nilai konfigurasi dari penyimpanan App Configuration. Untuk informasi selengkapnya, lihat Quarkus Azure App Configuration.

Buat aplikasi Quarkus dengan menggunakan perintah berikut:

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"

Aplikasi ini dibuat di direktori baru bernama quarkus-app-configuration. Berikut adalah struktur aplikasi:

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

File pom.xml berisi dependensi untuk aplikasi, termasuk ekstensi Azure App Configuration dan ekstensi REST. XML berikut adalah contoh umum:

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

File GreetingResource.java berisi layanan REST. Anda mengubah file ini untuk mengembalikan nilai konfigurasi dari penyimpanan App Configuration nanti.

File GreetingResourceTest.java berisi pengujian unit untuk layanan REST. Anda mengubah file ini untuk menegaskan bahwa nilai yang dikembalikan dari layanan REST sama dengan nilai di penyimpanan App Configuration nanti.

Hubungkan ke Toko Konfigurasi Aplikasi

Sekarang setelah Anda memiliki penyimpanan App Configuration dan aplikasi Quarkus dengan ekstensi Azure App Configuration, Anda dapat menghubungkan aplikasi tersebut ke penyimpanan.

Kodekan aplikasi

Konfigurasikan aplikasi dengan menggunakan langkah-langkah berikut:

  1. Buka file GreetingResource.java di direktori src/main/java/com/example , dan ganti konten dengan kode berikut:

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

    Kode yang dimodifikasi menggunakan anotasi MicroProfile Config @ConfigProperty untuk menyuntikkan nilai kunci /application/config.message dari penyimpanan App Configuration ke value bidang , dan mengembalikan nilai dalam layanan REST.

  2. Buka pengujian unit yang dihasilkan secara otomatis, yang ada dalam file GreetingResourceTest.java di direktori src/test/java/com/example . Ganti konten file dengan kode berikut:

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

    Kode yang dimodifikasi menegaskan bahwa nilai yang dikembalikan dari layanan REST sama dengan nilai di penyimpanan App Configuration. Nilai ini adalah Hello untuk kunci /application/config.message yang Anda tambahkan sebelumnya.

Perubahan kode pada aplikasi ini semuanya diperlukan. Sebelum menjalankan aplikasi, Anda perlu mengonfigurasi autentikasi dan koneksi ke penyimpanan App Configuration.

Mengonfigurasi autentikasi ke penyimpanan App Configuration

Selain autentikasi dengan kunci akses, ekstensi Quarkus Azure App Configuration mendukung autentikasi dengan ID Microsoft Entra menggunakan DefaultAzureCredential dari pustaka klien Azure Identity.

Anda menggunakan ID Entra Microsoft untuk autentikasi dalam panduan memulai ini. Untuk informasi selengkapnya, lihat DefaultAzureCredential di pustaka klien Azure Identity untuk Java.

Konfigurasikan autentikasi ke penyimpanan App Configuration dengan menggunakan langkah-langkah berikut:

  1. Atur variabel lingkungan dengan menggunakan perintah berikut, mengganti placeholder <...> dengan nilai yang Anda buat sebelumnya.

    export RESOURCE_GROUP_NAME="<resource-group-name>"
    export APP_CONFIG_NAME="<app-configuration-store-name>"
    
  2. Gunakan perintah berikut untuk menetapkan App Configuration Data Reader peran ke pengguna yang masuk:

    # 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. Ekspor titik akhir penyimpanan App Configuration ke variabel lingkungan bernama QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT dengan menggunakan perintah berikut:

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

    Nota

    Nilai variabel lingkungan QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT digunakan dalam properti konfigurasi quarkus.azure.app.configuration.endpoint dari ekstensi Quarkus Azure App Configuration untuk mengonfigurasi koneksi ke penyimpanan Azure App Configuration. Atau, Anda dapat mengonfigurasi properti ini dalam file application.properties di direktori src/main/resources dengan mengaturnya secara langsung, seperti dalam contoh berikut. Pastikan untuk mengganti <your-app-configuration-store-endpoint> dengan nilai aktual Anda.

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

Membangun dan menjalankan aplikasi secara lokal

Buat dan jalankan aplikasi secara lokal dengan menggunakan langkah-langkah berikut:

  1. Gunakan perintah berikut untuk membuat dan menjalankan aplikasi dalam mode JVM:

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

    Nota

    Sebagai alternatif, Anda dapat menjalankan sampel dalam mode asli. Untuk menggunakan mode asli, Anda harus menginstal GraalVM, atau menggunakan image builder untuk membangun eksekusi asli. Untuk informasi selengkapnya, lihat Membangun Native Executable. Panduan memulai cepat ini menggunakan Docker sebagai runtime kontainer untuk membangun eksekutabel Linux asli. Jika Anda tidak menginstal Docker, Anda dapat mengunduhnya dari situs web Docker.

    Gunakan perintah berikut untuk membangun dan menjalankan executable asli di lingkungan Linux:

    mvn package -Dnative -Dquarkus.native.container-build
    ./target/storage-blob-1.0.0-SNAPSHOT-runner
    
  2. Uji aplikasi Anda dengan menggunakan perintah berikut:

    curl localhost:8080/hello
    

    Anda seharusnya melihat Hello dalam output, karena Hello adalah nilai dari kunci /application/config.message yang Anda tambahkan ke penyimpanan App Configuration.

  3. Tekan Kontrol+C untuk menghentikan aplikasi.

Membersihkan sumber daya

Untuk menghindari biaya Azure, Anda harus membersihkan sumber daya yang tidak diperlukan. Saat Anda tidak lagi memerlukan penyimpanan App Configuration, gunakan perintah berikut untuk menghapus grup sumber daya dan semua sumber daya terkait:

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

Lihat juga