عينة نشر تطبيق Java

مكتمل

في هذه الوحدة، ستقوم بتكوين تطبيق Spring Boot ليتم نشره عبر Maven. ثم ستقوم بنشر التطبيق إلى مثيل Azure App Service. تظهر هذه الوحدة مثال عيادة الأليفة.

مثال على التطبيق

استنساخ ما يلي في أداة سطر الأوامر المفضلة لديك:

git clone https://github.com/spring-projects/spring-petclinic.git

ثم قم بتشغيل التطبيق محليا:

cd spring-petclinic

./mvnw package

java -jar target/*.jar

عند فتح المثال في المستعرض، يجب أن يبدو كما يلي:

لقطة شاشة تظهر النقر من خلال النشر المحلي لتطبيق عيادة الأليفة المثال.

إعداد تطبيق المثال ليكون جاهزا للسحابة

في مجلد src، ستجد فئات الكائن ووحدة التحكم والمستودع.

نظرا لأن Java مستقلة عن النظام الأساسي، فأنت حر في اختيار نظام التشغيل، ولكن إصدار Java مهم للنشر. يمكنك العثور على إصدار Java في ملف pom.xml.

<properties>
    <java.version>17</java.version>
</properties>

يستخدم المثال Java 8، لذلك يجب أن يستخدم مثيل Azure App Service، سواء Linux أو Windows، Java 8 أيضا. نظرا لأن النظام الأساسي لا يهم، سنستخدم Linux لمثالنا.

يجب علينا إضافة بعض تبعيات Azure إلى ملف pom.xml. يمكن أن تحدث إضافة التبعيات تلقائيا إذا قمت بتشغيل الأمر التالي:

mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.1:config

يطلب إخراج هذا الأمر تحديد بعض الخيارات. سيتم تخزين هذه الخيارات تلقائيا في pom.xml.

Please choose which part to config:
* 1: Application
  2: Runtime
  3: DeploymentSlot
Enter your choice: 1
Define value for appName [spring-petclinic-XXXX200]:
Define value for resourceGroup [spring-petclinic-XXXX200-rg]:
Define value for region [westeurope]:
Define value for pricingTier(P1v2):
   1: b1
   2: b2
   3: b3
   4: d1
   5: f1
*  6: p1v2
   7: p2v2
   8: p3v2
   9: s1
  10: s2
  11: s3
Enter your choice: 1
Please confirm webapp properties
AppName : spring-petclinic-XXXX200
ResourceGroup : spring-petclinic-XXXX200-rg
Region : westeurope
PricingTier : Basic_B2
OS : Linux
RuntimeStack : JAVA 8-jre8
Deploy to slot : false
Confirm (Y/N) [Y]: y

[INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

كما ترى، يمكنك الانتقال مع الإعدادات الافتراضية لنشر بسيط.

أضاف ملف pom.xml الآن المكون الإضافي المطلوب للتوزيع التلقائي المستند إلى Maven إلى Azure.

 <plugin>
    <groupId>com.microsoft.azure</groupId>  
        <artifactId>azure-webapp-maven-plugin</artifactId>  
        <version>2.11.1</version>  
        <configuration>
          <schemaVersion>V2</schemaVersion>  
          <subscriptionId>XXX-XXX-XXX</subscriptionId>  
          <resourceGroup>spring-petclinic-XXX200-rg</resourceGroup>  
          <appName>spring-petclinic-XXX200</appName>  
          <pricingTier>B2</pricingTier>  
          <region>westeurope</region>  
          <runtime>
            <os>linux</os>  
            <javaVersion>jre8</javaVersion>  
            <webContainer>jre8</webContainer>
          </runtime>  
          <deployment>
            <resources>
              <resource>
                <directory>${project.basedir}/target</directory>  
                <includes>
                  <include>*.jar</include>
                </includes>
              </resource>
            </resources>
          </deployment>
        </configuration>
  </plugin>

نشر التطبيق باستخدام Maven

نحن مستعدون بالفعل للتوزيع في Azure App Service.

mvn package com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy

يقوم هذا الأمر بتشغيل الاختبارات. ثم يدور تلقائيا فوق مثيل Azure App Service وينشر التطبيق المحزم.

لقطة شاشة لتطبيق عيادة الأليفة الذي تم نشره.

مبروك! تم نشر التطبيق بنجاح في Azure App Service.