مشاركة عبر


البرنامج التعليمي: دمج المسؤول ل Spring مع خادم يوريكا ل Spring في Azure Container Apps

يرشدك هذا البرنامج التعليمي خلال عملية دمج مسؤول مدار ل Spring مع خادم يوريكا ل Spring داخل Azure Container Apps.

تحتوي هذه المقالة على بعض المحتويات المشابهة للبرنامج التعليمي "الاتصال بمسؤول مدار ل Spring in Azure Container Apps"، ولكن باستخدام Eureka Server for Spring، يمكنك ربط المسؤول ل Spring بخادم Eureka ل Spring، بحيث يمكنه الحصول على معلومات التطبيق من خلال Eureka، بدلا من الاضطرار إلى ربط التطبيقات الفردية ب Admin for Spring.

باتباع هذا الدليل، يمكنك إعداد خادم Eureka لاكتشاف الخدمة ثم إنشاء مسؤول ل Spring لإدارة ومراقبة تطبيقات Spring المسجلة مع خادم Eureka. يضمن هذا الإعداد أن التطبيقات الأخرى تحتاج فقط إلى الربط بخادم يوريكا، ما يبسط إدارة الخدمات المصغرة الخاصة بك.

ستتعرف في هذا البرنامج التعليمي على:

  1. إنشاء خادم يوريكا ل Spring.
  2. إنشاء مسؤول ل Spring وربطه بخادم Eureka.
  3. ربط التطبيقات الأخرى بخادم يوريكا لاكتشاف الخدمة وإدارتها المبسطة.

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

الاعتبارات

عند تشغيل مكونات Java المدارة في Azure Container Apps، كن على دراية بالتفاصيل التالية:

العنصر الشرح
النطاق تعمل المكونات في نفس البيئة مثل تطبيق الحاوية المتصل.
تغير الحجم لا يمكن تغيير حجم المكون. يتم تعيين خصائص minReplicas التحجيم و maxReplicas على 1.
الموارد تم إصلاح تخصيص موارد الحاوية للمكونات. عدد الذاكرات الأساسية لوحدة المعالجة المركزية هو 0.5، وحجم الذاكرة هو 1 Gi.
التسعير تندرج فوترة المكونات ضمن التسعير المستند إلى الاستهلاك. تتم فوترة الموارد التي تستهلكها المكونات المدارة بأسعار نشطة/خبيثة. يمكنك حذف المكونات التي لم تعد قيد الاستخدام لإيقاف الفوترة.
Binding تتصل تطبيقات الحاوية بمكون عبر ربط. تدخل الروابط التكوينات في متغيرات بيئة تطبيق الحاوية. بعد تأسيس الربط، يمكن لتطبيق الحاوية قراءة قيم التكوين من متغيرات البيئة والاتصال بالمكون.

الإعداد

قبل البدء، قم بإنشاء الموارد الضرورية عن طريق تنفيذ الأوامر التالية.

  1. إنشاء متغيرات لدعم تكوين التطبيق الخاص بك. يتم توفير هذه القيم لك لأغراض هذا الدرس.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_NAME=eureka
    export ADMIN_COMPONENT_NAME=admin
    export CLIENT_APP_NAME=sample-service-eureka-client
    export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
    
    المتغير ‏‏الوصف
    LOCATION موقع منطقة Azure حيث تقوم بإنشاء تطبيق الحاوية ومكونات Java.
    RESOURCE_GROUP اسم مجموعة موارد Azure لتطبيق العرض التوضيحي الخاص بك.
    ENVIRONMENT اسم بيئة Azure Container Apps لتطبيق العرض التوضيحي الخاص بك.
    EUREKA_COMPONENT_NAME اسم مكون Java لخادم يوريكا.
    ADMIN_COMPONENT_NAME اسم مكون المسؤول ل Spring Java.
    CLIENT_APP_NAME اسم تطبيق الحاوية الذي يرتبط بخادم يوريكا.
    CLIENT_IMAGE صورة الحاوية المستخدمة في تطبيق حاوية خادم Eureka.
  2. سجل الدخول إلى Azure باستخدام Azure CLI.

    az login
    
  3. قم بإنشاء مجموعة موارد.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. إنشاء بيئة تطبيقات الحاوية.

    az containerapp env create \
        --name $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --query "properties.provisioningState"
    

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

اختياري: إنشاء خادم يوريكا ل Spring

إذا لم يكن لديك خادم يوريكا الحالي ل Spring، فاتبع الأمر أدناه لإنشاء مكون Java لخادم يوريكا. لمزيد من المعلومات، راجع إنشاء خادم يوريكا ل Spring.

az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_NAME

ربط المكونات معا

إنشاء مكون Admin for Spring Java.

az containerapp env java-component admin-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $ADMIN_COMPONENT_NAME \
    --min-replicas 1 \
    --max-replicas 1 \
    --bind $EUREKA_COMPONENT_NAME

ربط تطبيقات أخرى بخادم يوريكا

مع إعداد خادم Eureka، يمكنك الآن ربط التطبيقات الأخرى به لاكتشاف الخدمة. ويمكنك أيضا مراقبة هذه التطبيقات وإدارتها في لوحة معلومات المسؤول ل Spring. استخدم الخطوات التالية لإنشاء تطبيق حاوية وربطه بخادم Eureka:

إنشاء تطبيق الحاوية وربطه بخادم Eureka.

az containerapp create \
    --name $CLIENT_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --environment $ENVIRONMENT \
    --image $CLIENT_IMAGE \
    --min-replicas 1 \
    --max-replicas 1 \
    --ingress external \
    --target-port 8080 \
    --bind $EUREKA_COMPONENT_NAME 

تلميح

نظرا لأن الخطوات السابقة ربطت مكون Admin for Spring بمكون Eureka Server for Spring، فإن مكون المسؤول يتيح اكتشاف الخدمة ويسمح لك بإدارته من خلال لوحة معلومات المسؤول ل Spring في نفس الوقت.

عرض لوحات المعلومات

هام

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

  1. إنشاء تعريف الدور المخصص.

    az role definition create --role-definition '{
        "Name": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    تأكد من استبدال <SUBSCRIPTION_ID> العنصر النائب في AssignableScopes القيمة بمعرف الاشتراك الخاص بك.

  2. تعيين الدور المخصص لحسابك على مورد البيئة المدارة.

    احصل على معرف المورد للبيئة المدارة.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. تعيين الدور إلى حسابك.

    قبل تشغيل هذا الأمر، استبدل <USER_OR_SERVICE_PRINCIPAL_ID> العنصر النائب بالمعرف الأساسي للمستخدم أو الخدمة.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  4. احصل على عنوان URL للوحة معلومات المسؤول ل Spring.

    az containerapp env java-component admin-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    
  5. احصل على عنوان URL للوحة معلومات خادم يوريكا ل Spring.

    az containerapp env java-component eureka-server-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    

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

    لقطة شاشة لمسؤول لوحة معلومات Spring.

    لقطة شاشة للوحة معلومات خادم Eureka ل Spring.

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

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

az group delete --resource-group $RESOURCE_GROUP