مشاركة عبر


التشغيل السريع: تشغيل أول تطبيق Java للخدمات المصغرة باستخدام مكونات Java المدارة في Azure Container Apps

في هذا التشغيل السريع، ستتعلم كيفية نشر تطبيق في Azure Container Apps يستخدم مكونات Java للتعامل مع إدارة التكوين واكتشاف الخدمة والصحة والمقاييس. نموذج التطبيق المستخدم في هذا المثال هو Java PetClinic، الذي يستخدم نمط بنية الخدمات المصغرة. يوضح الرسم التخطيطي التالي بنية تطبيق PetClinic على Azure Container Apps:

رسم تخطيطي للعلاقة بين مكونات Java وتطبيقات الخدمات المصغرة.

يتضمن تطبيق PetClinic الميزات التالية:

  • الواجهة الأمامية هي تطبيق ويب مستقل Node.js مستضاف على تطبيق بوابة واجهة برمجة التطبيقات.
  • توجه بوابة API الطلبات إلى تطبيقات الخدمة الخلفية.
  • تم إنشاء التطبيقات الخلفية باستخدام Spring Boot.
  • يستخدم كل تطبيق خلفي قاعدة بيانات HyperSQL كمخزن مستمر.
  • تستخدم التطبيقات مكونات Java المدارة على Azure Container Apps، بما في ذلك سجل الخدمة وخادم التكوين وخادم المسؤول.
  • يقرأ خادم التكوين البيانات من مستودع Git.
  • تسجل مساحة عمل Log Analytics بيانات الخادم.

في هذا البرنامج التعليمي، سوف تتعلّم:

  • إنشاء خادم تكوين وخادم Eureka وخادم المسؤول ومكونات المسؤول
  • إنشاء سلسلة من تطبيقات الخدمات المصغرة
  • ربط مكونات الخادم بتطبيقات الخدمات المصغرة
  • نشر مجموعة التطبيقات
  • مراجعة التطبيقات المنشورة

بنهاية هذه المقالة، يمكنك نشر تطبيق ويب واحد وثلاثة تطبيقات خلفية تم تكوينها للعمل مع ثلاثة مكونات Java مختلفة. يمكنك بعد ذلك إدارة كل مكون عبر مدخل Microsoft Azure.

المتطلبات الأساسية

الإعداد

لإنشاء متغيرات البيئة ومجموعة الموارد وبيئة Azure Container Apps، استخدم الخطوات التالية:

  1. تحتوي متغيرات البيئة على قيمك المخصصة، لذا استبدل قيم العنصر النائب محاطة <> بالقيم الخاصة بك قبل تشغيل الأوامر التالية:

    export RESOURCE_GROUP=<RESOURCE_GROUP>
    export LOCATION=<LOCATION>
    export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
    
  2. الآن يمكنك إنشاء المزيد من متغيرات البيئة التي تحتوي على إعدادات تطبيق الخدمات المصغرة. يتم استخدام هذه القيم لتعريف أسماء وتكوينات مكونات Java وتطبيقات حاوية Azure التي تستخدمها لنشر الخدمات المصغرة. قم بإنشاء متغيرات البيئة هذه باستخدام الأوامر التالية:

    export CONFIG_SERVER_COMPONENT=configserver
    export ADMIN_SERVER_COMPONENT=admin
    export EUREKA_SERVER_COMPONENT=eureka
    export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git
    export CUSTOMERS_SERVICE=customers-service
    export VETS_SERVICE=vets-service
    export VISITS_SERVICE=visits-service
    export API_GATEWAY=api-gateway
    export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service
    export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service
    export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service
    export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gateway
    
  3. قم بتسجيل الدخول إلى Azure CLI واختر اشتراكك النشط باستخدام الأمر التالي:

    az login
    
  4. إنشاء مجموعة موارد لتنظيم خدمات Azure باستخدام الأمر التالي:

    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  5. إنشاء بيئة Azure Container Apps، التي تستضيف كل من مكونات Java وتطبيقات الحاوية الخاصة بك، باستخدام الأمر التالي:

    az containerapp env create \
        --resource-group $RESOURCE_GROUP \
        --name $CONTAINER_APP_ENVIRONMENT \
        --location $LOCATION
    

إنشاء مكونات Java

الآن يمكنك إنشاء مكونات Java التالية التي تدعم تطبيقك:

  • خادم التكوين. يستخدم لإدارة إعدادات التكوين لتطبيقات الخدمات المصغرة.
  • خادم يوريكا. يستخدم لإدارة سجل الخدمة والاكتشاف.
  • خادم المسؤول. يستخدم لمراقبة وإدارة صحة ومقاييس تطبيقات الخدمات المصغرة.

لإنشاء مكونات الخادم هذه، استخدم الخطوات التالية:

  1. إنشاء خادم التكوين لمكونات Java باستخدام الأمر التالي:

    az containerapp env java-component config-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $CONFIG_SERVER_COMPONENT \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URI
    
  2. إنشاء خادم Eureka لمكونات Java باستخدام الأمر التالي:

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    
  3. إنشاء خادم المسؤول لمكونات Java باستخدام الأمر التالي:

    az containerapp env java-component admin-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    

نشر تطبيقات الخدمات المصغرة

لنشر تطبيقات الخدمات المصغرة Java إلى Azure Container Apps باستخدام صور الحاوية التي تم إنشاؤها مسبقا، استخدم الخطوات التالية:

إشعار

في هذه المقالة، يمكنك استخدام سلسلة من الصور المضمنةلتطبيقات الخدمات المصغرة Spring Petclinic. لديك أيضا خيار تخصيص نموذج التعليمات البرمجية واستخدام الصور الخاصة بك. لمزيد من المعلومات، راجع مستودع GitHub azure-container-apps-java-samples.

  1. إنشاء تطبيق بيانات العميل باستخدام الأمر التالي:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $CUSTOMERS_SERVICE_IMAGE
    
  2. إنشاء تطبيق vet باستخدام الأمر التالي:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VETS_SERVICE_IMAGE
    
  3. إنشاء تطبيق الزيارات باستخدام الأمر التالي:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VISITS_SERVICE_IMAGE
    
  4. إنشاء تطبيق بوابة API باستخدام الأمر التالي:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $API_GATEWAY_IMAGE \
        --ingress external \
        --target-port 8080 \
        --query properties.configuration.ingress.fqdn 
    

ربط تطبيقات الحاوية إلى مكونات Java

بعد ذلك، اربط مكونات Java بتطبيقات الحاوية الخاصة بك. توفر الروابط التي تقوم بإنشائها في هذا القسم الوظائف التالية:

  • أدخل بيانات التكوين في كل تطبيق من خادم التكوين المدار عند بدء التشغيل.
  • سجل التطبيق مع خادم يوريكا المدار لاكتشاف الخدمة.
  • تمكين خادم المسؤول لمراقبة التطبيق.

containerapp update استخدم الأمر لإنشاء روابط لكل تطبيق باستخدام الخطوات التالية:

  1. أضف روابط إلى تطبيق بيانات العميل باستخدام الأمر التالي:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  2. أضف روابط إلى خدمة vet باستخدام الأمر التالي:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  3. أضف روابط إلى خدمة الزيارات باستخدام الأمر التالي:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  4. إضافة روابط إلى بوابة API. استخدم الأمر التالي لإرجاع عنوان URL لتطبيق الواجهة الأمامية، ثم افتح هذا الموقع في المستعرض:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \
        --query properties.configuration.ingress.fqdn 
    

التحقق من حالة التطبيق

استخدم الخطوات التالية للتحقق من حالة التطبيق:

  1. باستخدام عنوان URL الذي تم إرجاعه من أمر بوابة az containerapp update واجهة برمجة التطبيقات، اعرض تطبيق الواجهة الأمامية في المستعرض الخاص بك. يجب أن يشبه التطبيق لقطة الشاشة التالية:

    لقطة شاشة للصفحة الرئيسية لتطبيق عيادة الأليفة.

  2. عرض لوحة معلومات خادم Eureka باستخدام الخطوات التالية:

    هام

    لعرض لوحة معلومات خادم Eureka ولوحة معلومات المسؤول ل Spring، تحتاج على الأقل Microsoft.App/managedEnvironments/write إلى تعيين الدور لحسابك على مورد البيئة المدارة. يمكنك تعيين Owner دور أو Contributor على المورد بشكل صريح. يمكنك أيضا اتباع الخطوات لإنشاء تعريف دور مخصص وتعيينه إلى حسابك.

    1. قم بتشغيل الأمر التالي لإرجاع عنوان URL للوحة المعلومات:

      az containerapp env java-component eureka-server-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $EUREKA_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. افتح عنوان URL في المستعرض. يجب أن تشاهد تطبيقا يشبه لقطة الشاشة التالية:

      لقطة شاشة لتطبيق عيادة الأليفة يوريكا Server.

  3. عرض لوحة معلومات المسؤول ل Spring باستخدام الخطوات التالية:

    1. استخدم الأمر التالي لإرجاع عنوان URL للوحة المعلومات:

      az containerapp env java-component admin-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $ADMIN_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. افتح عنوان URL في المستعرض. يجب أن تشاهد تطبيقا يشبه لقطة الشاشة التالية:

      لقطة شاشة للوحة معلومات مسؤول عيادة الأليفة تعرض خمس خدمات، جنبا إلى جنب مع معلومات الإصدار لأربعة من الخدمات.

اختياري: تكوين مكونات Java

يمكنك تكوين مكونات Java التي تم إنشاؤها في هذا التشغيل السريع من خلال مدخل Microsoft Azure باستخدام قسم التكوينات .

لقطة شاشة لقسم التكوينات، تعرض مربعات نص اسم الخاصية والقيمة، والقدرة على حذف خاصية.

لمزيد من المعلومات حول تكوين مكونات Java الثلاثة التي قمت بإنشائها في هذا التشغيل السريع، راجع الارتباطات التالية:

تنظيف الموارد

الموارد التي تم إنشاؤها في هذا التشغيل السريع لها تأثير على فاتورة Azure. إذا كنت لن تستخدم هذه الخدمات على المدى الطويل، فاستخدم الأمر التالي لإزالة كل شيء تم إنشاؤه في هذا التشغيل السريع:

az group delete --resource-group $RESOURCE_GROUP