Maven ile Azure Uygulaması Hizmetine Quarkus Web Uygulaması Dağıtma

Bu hızlı başlangıçta, Linux üzerinde Azure Uygulaması Service'e bir Quarkus uygulaması dağıtmak üzere Azure Uygulaması Service Web Apps için Maven Eklentisi'ni kullanacaksınız. Uygulamanızın bağımlılıklarını, çalışma zamanını ve yapılandırmasını dağıtılabilir tek bir yapıtta birleştirmek istediğinizde Tomcat ve WAR dosyaları yerine Java SE dağıtımını seçebilirsiniz.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

Azure CLI'da oturum açma

Maven Eklentisi'ni Quarkus uygulamanızı dağıtmanın en basit ve en kolay yolu Azure CLI kullanmaktır.

Azure CLI’yi kullanarak Azure hesabınızda oturum açın:

az login

Yönergeleri izleyerek oturum açma işlemlerini tamamlayın.

MicroProfile Starter'dan örnek uygulama oluşturma

Bu bölümde bir Quarkus uygulaması oluşturacak ve yerel olarak test edeceğiz.

Java SE 8 temel Projesi oluşturma

  1. Bir web tarayıcısı açın ve MicroProfile Starter sitesine gidin.

    Quarkus çalışma zamanının seçili olduğu MicroProfile Starter'ı gösteren ekran görüntüsü.

  2. Belirtilen alanlar için aşağıdaki değerleri sağlayın.

    Alan Değer
    groupId com.microsoft.azure.samples.quarkus
    Artifactıd quarkus-hello-azure
    MicroProfile Sürümü MP 3.2
    Java SE Sürümü Java 8
    MicroProfile Runtime Quarkus
    Belirtim örnekleri Ölçümler, OpenAPI
  3. Projeyi indirmek için İnDİr'i seçin.

  4. Arşiv dosyasının sıkıştırmasını açın; örneğin:

    unzip Quarkus-hello-azure.zip
    

Java SE 11 temel Projesi oluşturma

Java 11 temel projesini oluşturmak için aşağıdaki komutu kullanın:

mvn io.quarkus:quarkus-maven-plugin:2.6.1.Final:create \
  -DprojectGroupId=com.microsoft.azure.samples.quarkus \
  -DprojectArtifactId=quarkus-hello-azure  \
  -DclassName="com.microsoft.azure.samples.quarkus.App" \
  -Dpath="/hello"

Uygulamayı Yerel ortamda çalıştırma

  1. Tamamlanmış projenin dizinine geçin; örneğin:

    cd quarkus-hello-azure/
    
  2. Maven kullanarak projeyi derleme ve çalıştırma; örneğin:

    mvn quarkus:dev
    
  3. Web tarayıcısını kullanarak yerel olarak göz atarak web uygulamasını test edin. Örneğin curl kullanılabiliyorsa aşağıdaki komutu kullanabilirsiniz:

    Java SE 8 Projesi için:

    curl http://localhost:8080/data/hello
    

    Java SE 11 Projesi için:

    curl localhost:8080/hello
    
  4. Şu iletinin görüntülendiğini görmeniz gerekir: Merhaba Dünya veya hello

Azure App Service için Maven Eklentisi’ni yapılandırma

Bu bölümde Quarkus proje pom.xml dosyasını maven'in uygulamayı Linux üzerinde Azure Uygulaması Hizmeti'ne dağıtabilmesi için yapılandıracaksınız.

  1. pom.xml dosyasını bir kod düzenleyicisinde açın.

  2. <build> pom.xml dosyasının bölümünde, aşağıdaki girdiyi <plugin> etiketinin <plugins> içine ekleyinmaven-surefire-plugin.

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>2.5.0</version>
    </plugin>
    
  3. Dağıtımı yapılandırmak için aşağıdaki Maven komutunu çalıştırın:

    mvn azure-webapp:config
    

    İstendiğinde aşağıdaki seçenekleri belirtin:

    Giriş Alanı Giriş/Değer Seçme
    Abonelik seçin Abonelik kimliğinizi girin.
    İşletim sistemi için değer tanımlama(Varsayılan: Linux): 2. linux
    javaVersion için değer tanımlama(Varsayılan: Java 8): 2. Java 11
    pricingTier için değer tanımlamaTier(Varsayılan: P1v2): 9. P1v2
    Onayla (E/H) y

    Bu komut aşağıdaki örneğe benzer bir çıktı oluşturur:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------< com.microsoft.azure.samples.quarkus:quarkus-hello-azure >-------
    [INFO] Building quarkus-hello-azure 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:2.5.0:config (default-cli) @ quarkus-hello-azure ---
    [INFO] Auth type: OAUTH2
    Username: abc@xyz.com
    Available subscriptions:
    *  1: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx)
       2: Subscription2(yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyy)
    Please choose a subscription [xxx]: 1
    [INFO] Subscription: Subscription1(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx)
    Define value for OS [Linux]:
      1: Windows
    * 2: Linux
      3: Docker
    Enter your choice: 2
    Define value for javaVersion [Java 8]:
    * 1: Java 8
      2: Java 11
      3: Java 17
    Enter your choice: 2
    Define value for pricingTier [P1v2]:
       1: B1
       2: B2
       3: B3
       4: D1
       5: EP1
       6: EP2
       7: EP3
       8: F1
    *  9: P1v2
      10: P1v3
      11: P2v2
      12: P2v3
      13: P3v2
      14: P3v3
      15: S1
      16: S2
      17: S3
      18: Y1
    Enter your choice: 9
    Please confirm webapp properties
    Subscription Id : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
    AppName : quarkus-hello-azure-1601011883156
    ResourceGroup : quarkus-hello-azure-1601011883156-rg
    Region : centralus
    PricingTier : P1v2
    OS : Linux
    Java : Java 11
    Web server stack: Java SE
    Deploy to slot : false
    Confirm (Y/N) [Y]:
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  16.502 s
    [INFO] Finished at: 2020-09-25T14:31:34+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. <appSettings> bölümünü , WEBSITES_PORTve WEBSITES_CONTAINER_START_TIME_LIMITbölümlerine <configuration> PORTekleyin. için azure-webapp-maven-plugin XML girdiniz aşağıdaki örneğe benzer olacaktır:

       <plugin>
         <groupId>com.microsoft.azure</groupId>
         <artifactId>azure-webapp-maven-plugin</artifactId>
         <version>2.5.0</version>
         <configuration>
           <schemaVersion>V2</schemaVersion>
           <resourceGroup>microprofile</resourceGroup>
           <appName>quarkus-hello-azure-1591836715762</appName>
           <pricingTier>P1v2</pricingTier>
           <region>centralus</region>
           <runtime>
             <os>linux</os>
             <javaVersion>java 11</javaVersion>
             <webContainer>java SE</webContainer>
           </runtime>
           <appSettings>
             <property>
               <name>PORT</name>
               <value>8080</value>
             </property>
             <property>
               <name>WEBSITES_PORT</name>
               <value>8080</value>
             </property>
             <property>
               <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name>
               <value>600</value>
             </property>
           </appSettings>
           <deployment>
             <resources>
               <resource>
                 <directory>${project.basedir}/target</directory>
                 <includes>
                   <include>*.jar</include>
                 </includes>
               </resource>
             </resources>
           </deployment>
         </configuration>
       </plugin>
    
  5. Uber (FAT) jar dosyasını oluşturmak için src/main/resources/application.properties dosyasına aşağıdaki girdiyi ekleyin.

    quarkus.package.type=uber-jar
    

Uygulamayı Azure’da dağıtma

Bu makalenin önceki bölümlerinde yer alan tüm ayarları yapılandırdıktan sonra web uygulamanızı Azure'a dağıtmaya hazırsınız demektir. Bunu yapmak için aşağıdaki adımları kullanın:

  1. pom.xml dosyasında herhangi bir değişiklik yaptıysanız, aşağıdaki komutu kullanarak JAR dosyasını yeniden oluşturun:

    mvn clean package
    
  2. Aşağıdaki komutu kullanarak web uygulamanızı Azure'a dağıtın:

    mvn azure-webapp:deploy
    

Dağıtım başarılı olursa aşağıdaki çıkışı görürsünüz:

[INFO] Successfully deployed the artifact to https://quarkus-hello-azure-1591836715762.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:20 min
[INFO] Finished at: 2020-06-11T10:06:51+09:00
[INFO] ------------------------------------------------------------------------

Maven, web uygulamanızı Azure'a dağıtır. Web uygulaması veya web uygulaması planı henüz yoksa, sizin için oluşturulur. Web uygulamasının çıktıda gösterilen URL'de görünmesi birkaç dakika sürebilir. Web tarayıcısında URL'ye gidin. Aşağıdaki ekranı görmeniz gerekir.

Quarkus'un ön sayfasını gösteren web tarayıcısının ekran görüntüsü.

Web uygulamanız dağıtıldığında Azure portalı üzerinden yönetebilirsiniz.

Web uygulamanız mikroprofil kaynak grubunda listelenir.

Web uygulamanızın Genel Bakış sayfasında Gözat'ı seçerek web uygulamanıza erişebilirsiniz. Dağıtımın başarılı olduğunu ve çalıştığını doğrulayın.

Çalışan App Service'ten günlük akışını onaylayın

Çalışan App Service'ten günlükleri görebilirsiniz (veya "takip edebilirsiniz"). Site kodundaki tüm çağrılar console.log terminalde görüntülenir.

az webapp log tail 
    --resource-group microprofile \
    --name quarkus-hello-azure-1601011883156

Günlük akışını gösteren terminal penceresinin ekran görüntüsü.

Kaynakları temizleme

Artık Azure kaynakları gerekli değilse, kaynak grubunu silerek dağıttığınız kaynakları temizleyin.

  • Azure portalında sol menüden Kaynak grubu’nu seçin.
  • Ada göre filtrele alanına mikroprofil girin; bu öğreticide oluşturulan kaynak grubunda bu ön ek olmalıdır.
  • Bu öğreticide oluşturulan kaynak grubunu seçin.
  • Üstteki menüden Kaynak grubunu sil’i seçin.

Sonraki adımlar

MicroProfile ve Azure hakkında daha fazla bilgi edinmek için Azure'da MicroProfile belge merkezine geçin.

Ek kaynaklar

Bu makalede tartışılan çeşitli teknolojiler hakkında daha fazla bilgi için aşağıdaki makalelere bakın: