Alıştırma - Azure App Service'e web uygulaması dağıtma

Tamamlandı

Bu ünitede Java Tomcat web uygulamanızı Azure App Service'e dağıtacaksınız.

Azure App Service için Maven Eklentisi

Microsoft, Java geliştiricilerinin Uygulamaları Azure'a dağıtmasını kolaylaştırmak amacıyla Azure App Service için Maven Eklentisi sağlar. Bu eklentiyi kullanarak uygulamanızı kolayca yapılandırabilir ve Azure'a dağıtabilirsiniz. Eklentiyi yapılandırmak, kaynak kodunuzu derlemek ve uygulamanızı dağıtmak için aşağıdaki bölümlerdeki adımları kullanın.

Azure App Service için Maven Eklentisini Yapılandırma

Azure App Service için Maven Eklentisini yapılandırmak için aşağıdaki adımları kullanın:

  1. Aşağıdaki komutu kullanarak yapılandırmaya başlayın:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    
  2. Komutu kullandıktan sonra, komut isteminde çeşitli seçenekleri yapılandırmanızı sağlayan bazı sorular görüntülenir. Seçenekleri ve değerleri aşağıdaki tabloda yer alan bilgilere göre yapılandırın:

    Madde Giriş değeri
    Abonelik Azure aboneliğinizi seçin.
    İşletim sistemi için değer tanımlama Linux
    Fiyatlandırma katmanı için değer tanımlama B1
    Java sürümü için değer tanımlama Java 21
    Çalışma zamanı yığını için değer tanımlama TOMCAT 10.0
    Onayla (Y/N) Y

    Seçenekleri yapılandırdıktan sonra aşağıdaki çıkış tipiktir:

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.10.0:config
    [INFO] Scanning for projects...
    [INFO]
    [INFO] -------------------< com.example:simple-tomcat-app >--------------------
    [INFO] Building simple-tomcat-app 1.0-SNAPSHOT
    [INFO]   from pom.xml
    [INFO] --------------------------------[ war ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp:2.10.0:config (default-cli) @ simple-tomcat-app ---
    Downloading from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml
    Downloading from ossrh: https://oss.sonatype.org/content/repositories/snapshots/net/minidev/json-smart/maven-metadata.xml
    Downloading from shibboleth-repo: https://build.shibboleth.net/nexus/content/repositories/releases/net/minidev/json-smart/maven-metadata.xml
    Downloaded from central: https://repo.maven.apache.org/maven2/net/minidev/json-smart/maven-metadata.xml (1.3 kB at 6.3 kB/s)
    Please choose which part to config [Application]:
    * 1: Application
      2: Runtime
      3: DeploymentSlot
    Enter your choice: 1
    Define value for appName [simple-tomcat-app]: tomcatmavendemo
    Define value for resourceGroup [tomcatmavendemo-rg]: MyResourceGroup
    Define value for region [{azure.region}]: centralus
    Define value for pricingTier [B1]:
    *  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: 1
    Please confirm webapp properties
    AppName : tomcatmavendemo
    ResourceGroup : MyResourceGroup
    Region : centralus
    PricingTier : B1
    OS : Linux
    Java Version: 21
    Web server stack: Tomcat 10.1
    Deploy to slot : false
    Confirm (Y/N) [Y]: Y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  01:49 min
    [INFO] Finished at: 2024-11-07T09:54:55-08:00
    [INFO] ------------------------------------------------------------------------
    
  3. pom.xml dosyanız artık <plugins> bölümünde yeni bir kesit içeriyor. Kaynak grubu adını, örnek adını veya dağıtım konumunu değiştirmek istiyorsanız, , <resourceGroup>veya <appName> öğelerindeki <region>değerleri değiştirin. Aşağıdaki örnekte tipik bir pom.xml dosyası gösterilmektedir:

          <!-- Azure Web App Maven Plugin -->
    <plugin>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-webapp-maven-plugin</artifactId>
        <version>2.10.0</version>
        <configuration>
            <resourceGroup>MyResourceGroup</resourceGroup>
            <appName>tomcatmavendemo</appName>
            <region>centralus</region>
            <pricingTier>B1</pricingTier>
            <runtime>
                <os>linux</os>
                <javaVersion>21</javaVersion>
                <webContainer>Tomcat 10.1</webContainer>
            </runtime>
            <deployment>
                <resources>
                    <resource>
                        <directory>${project.build.directory}</directory>
                        <includes>
                            <include>*.war</include>
                        </includes>
                    </resource>
                </resources>
            </deployment>
        </configuration>
    </plugin>
    

Derleme ve Azure App Service'e dağıtma

Azure App Service'e dağıtma ayarlarını yapılandırmayı tamamladığınıza göre, kaynak kodunuzu derlemek ve uygulamanızı Azure App Services'e dağıtmak için aşağıdaki adımları kullanın:

  1. Aşağıdaki komutu kullanarak kaynak kodu yeniden derleyin:

    mvn clean package
    
  2. Kaynak kodu derlendiğinde uygulamanızı dağıtmak için aşağıdaki komutu kullanın:

    mvn azure-webapp:deploy
    

Dağıtım tamamlandığında aşağıdaki çıkış tipiktir:

[INFO] Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  06:55 min
[INFO] Finished at: 2024-11-07T10:05:19-08:00
[INFO] ------------------------------------------------------------------------

Gördüğünüz gibi, bu çıkış dağıtılan uygulamanın genel URL'sini sağlar: Successfully deployed the artifact to https://tomcatmavendemo.azurewebsites.net.

Uygulamaya gittiğinizde aşağıdaki ekran görüntüsüne benzer olmalıdır:

Tarayıcıda dağıtılan web uygulamasını gösteren ekran görüntüsü.

Kayıt akışını onaylayın

Günlük akışına erişmek için aşağıdaki komutu kullanın:

az webapp log tail \
    --resource-group <your-resource-group> \
    --name <your-app-name>

Aşağıdaki çıkış tipiktir:

2024-11-07T18:14:37  Welcome, you are now connected to log-streaming service.
Starting Log Tail -n 10 of existing logs ----
/appsvctmp/volatile/logs/runtime/container.log
2024-11-07T18:06:05.3874260Z  java.base/java.lang.Thread.run(Thread.java:1583)
2024-11-07T18:06:05.5635356Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.5636042Z INFO: Stopping ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6020767Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol stop
2024-11-07T18:06:05.6021438Z INFO: Stopping ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.6423756Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6424403Z INFO: Destroying ProtocolHandler ["http-nio-127.0.0.1-80"]
2024-11-07T18:06:05.6893602Z Nov 07, 2024 6:06:05 PM org.apache.coyote.AbstractProtocol destroy
2024-11-07T18:06:05.6894311Z INFO: Destroying ProtocolHandler ["http-nio-169.254.129.3-80"]
2024-11-07T18:06:05.7849816Z Done processing signal SIGTERM. Exiting now!
Ending Log Tail of existing logs ---
Starting Live Log Stream ---

Alıştırma özeti

Bu ünitede Maven kullanarak tomcat web uygulaması oluşturmayı öğrendiniz. Ayrıca bir servlet oluşturmayı ve nasıl çalıştığını da öğrendinsiniz. Ardından, Web uygulamanızı Tomcat kullanarak yerel olarak dağıttınız. Son olarak, dünyadaki herkesin erişebilmesi için Azure App Service'e dağıttınız.