Hızlı Başlangıç: Azure Uygulama Yapılandırması ile Java Quarkus uygulaması oluşturma

Bu hızlı başlangıçta Azure Uygulama Yapılandırması'nı bir Java Quarkus uygulamasına dahil ederek uygulama ayarlarının depolamasını ve yönetimini kodunuzdan ayrı olarak merkezi hale getireceksiniz.

Önkoşullar

Anahtar-değer çifti ekleme

Aşağıdaki anahtar-değer çiftini Uygulama Yapılandırma deposuna ekleyin. Azure CLI kullanarak bir depoya anahtar-değer çiftleri ekleme hakkında daha fazla bilgi için bkz. Anahtar-değer oluşturma.

Key Değer
/application/config.message Merhaba

Quarkus uygulaması oluşturma

Bu bölümde Azure Uygulama Yapılandırması uzantısı ve REST uzantısı ile bir Quarkus uygulaması oluşturacaksınız. REST uzantısı, Uygulama Yapılandırma deposundan yapılandırma değerini döndüren bir REST hizmeti oluşturmak için kullanılır. Daha fazla bilgi için bkz. Quarkus Azure Uygulama Yapılandırması.

Aşağıdaki komutu kullanarak bir Quarkus uygulaması oluşturun:

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"

Uygulama , quarkus-app-configuration adlı yeni bir dizinde oluşturulur. Uygulamanın yapısı şöyledir:

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

pom.xml dosyası, Azure Uygulama Yapılandırması uzantısı ve REST uzantısı dahil olmak üzere uygulamanın bağımlılıklarını içerir. Aşağıdaki XML tipik bir örnektir:

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

GreetingResource.java dosyası REST hizmetini içerir. Bu dosyayı daha sonra Uygulama Yapılandırma deposundan yapılandırma değerini döndürecek şekilde değiştirirsiniz.

GreetingResourceTest.java dosyası REST hizmeti için birim testini içerir. Rest hizmetinden döndürülen değerin daha sonra Uygulama Yapılandırma deposundaki değere eşit olduğunu onaylaması için bu dosyayı değiştirirsiniz.

Uygulama Yapılandırması deposuna bağlanma

Artık Bir Uygulama Yapılandırma mağazanız ve Azure Uygulama Yapılandırması uzantısına sahip bir Quarkus uygulamanız olduğuna göre, uygulamayı mağazaya bağlayabilirsiniz.

Uygulamayı kodlayın

Aşağıdaki adımları kullanarak uygulamayı yapılandırın:

  1. src/main/java/com/example dizininde GreetingResource.java dosyasını açın ve içeriğini aşağıdaki kodla değiştirin:

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

    Değiştirilen kod, MicroProfile Config @ConfigProperty ek açıklamasını kullanarak anahtarın /application/config.message değerini Uygulama Yapılandırma deposundan value alana ekler ve REST hizmetindeki değeri döndürür.

  2. src/test/java/com/example dizinindeki GreetingResourceTest.java dosyasında yer alan otomatik olarak oluşturulan birim testini açın. Dosyanın içeriğini aşağıdaki kodla değiştirin:

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

    Değiştirilen kod, REST hizmetinden döndürülen değerin Uygulama Yapılandırma deposundaki değere eşit olduğunu onaylar. Bu değer, daha önce eklediğiniz anahtara Hello yöneliktir/application/config.message.

Uygulamada yapılan bu kod değişikliklerinin tümü gereklidir. Uygulamayı çalıştırmadan önce, kimlik doğrulamasını ve Uygulama Yapılandırma deposu bağlantısını yapılandırmanız gerekir.

Uygulama Yapılandırma deposu için kimlik doğrulamasını yapılandırma

Quarkus Azure Uygulama Yapılandırması uzantısı, erişim anahtarlarıyla kimlik doğrulamasının yanı sıra Azure Kimlik istemci kitaplığından kullanarak DefaultAzureCredential Microsoft Entra ID ile kimlik doğrulamasını destekler.

Bu hızlı başlangıçta kimlik doğrulaması için Microsoft Entra Id kullanacaksınız. Daha fazla bilgi için bkz DefaultAzureCredential . Java için Azure Identity istemci kitaplığı.

Aşağıdaki adımları kullanarak Uygulama Yapılandırma deposuna kimlik doğrulamasını yapılandırın:

  1. Aşağıdaki komutları kullanarak ortam değişkenlerini ayarlayın ve yer tutucuları daha önce oluşturduğunuz değerlerle değiştirin <...> :

    export RESOURCE_GROUP_NAME="<resource-group-name>"
    export APP_CONFIG_NAME="<app-configuration-store-name>"
    
  2. Rolü oturum açmış kullanıcıya atamak App Configuration Data Reader için aşağıdaki komutları kullanın:

    # 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. Aşağıdaki komutu kullanarak Uygulama Yapılandırma deposunun uç noktasını adlı QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT bir ortam değişkenine aktarın:

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

    Uyarı

    Ortam değişkeninin QUARKUS_AZURE_APP_CONFIGURATION_ENDPOINT değeri, Azure Uygulama Yapılandırma deposuna bağlantıyı ayarlamak için Quarkus Azure Uygulama Yapılandırması uzantısının yapılandırma özelliğinde quarkus.azure.app.configuration.endpoint kullanılır. Alternatif olarak, aşağıdaki örnekte olduğu gibi bu özelliği src/main/resources dizinindeki application.properties dosyasında doğrudan ayarlayarak yapılandırabilirsiniz. <your-app-configuration-store-endpoint> simgesini gerçek değerinizle değiştirmeyi unutmayın.

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

Uygulamayı yerel olarak derleme ve çalıştırma

Aşağıdaki adımları kullanarak uygulamayı yerel olarak derleyin ve çalıştırın:

  1. Uygulamayı JVM modunda derlemek ve çalıştırmak için aşağıdaki komutları kullanın:

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

    Uyarı

    Alternatif olarak, örneği yerel modda çalıştırabilirsiniz. Yerel modu kullanmak için GraalVM'nin yüklü olması veya yerel yürütülebilir dosyayı oluşturmak için oluşturucu görüntüsü kullanmanız gerekir. Daha fazla bilgi için bkz. Yerel Yürütülebilir Dosya Oluşturma. Bu hızlı başlangıç kılavuzunda, Linux yerel yürütülebilir dosyası oluşturmak için kapsayıcı çalışma zamanı olarak Docker kullanılır. Docker yüklü değilse Docker web sitesinden indirebilirsiniz.

    Yerel yürütülebilir dosyayı bir Linux ortamında derlemek ve yürütmek için aşağıdaki komutları kullanın:

    mvn package -Dnative -Dquarkus.native.container-build
    ./target/storage-blob-1.0.0-SNAPSHOT-runner
    
  2. Aşağıdaki komutu kullanarak uygulamanızı test edin:

    curl localhost:8080/hello
    

    Uygulama Yapılandırma deposuna eklediğiniz anahtarın Hello değeri olduğundan Hello çıktıda görmeniz /application/config.message gerekir.

  3. Uygulamayı durdurmak için Control+C tuşuna basın.

Kaynakları temizle

Azure ücretlerinden kaçınmak için gereksiz kaynakları temizlemeniz gerekir. Uygulama Yapılandırma deposuna artık ihtiyacınız kalmadığında, kaynak grubunu ve tüm ilgili kaynakları kaldırmak için aşağıdaki komutu kullanın:

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

Ayrıca bakınız