التشغيل السريع: إنشاء التطبيقات ونشرها في Azure Spring Apps باستخدام خطة Enterprise

إشعار

سيتم إهمال الخطط الأساسية والقياسية والمؤسسة بدءا من منتصف مارس 2025، مع فترة تقاعد 3 سنوات. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع إعلان إيقاف Azure Spring Apps.

سيتم إهمال الاستهلاك القياسي والخطة المخصصة بدءا من 30 سبتمبر 2024، مع إيقاف التشغيل الكامل بعد ستة أشهر. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع ترحيل استهلاك Azure Spring Apps القياسي وخطة مخصصة إلى Azure Container Apps.

تنطبق هذه المقالة على:❌ Basic/Standard ✔️ Enterprise

يوضح لك هذا التشغيل السريع كيفية إنشاء التطبيقات ونشرها في Azure Spring Apps باستخدام خطة المؤسسة.

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

تنزيل التطبيق النموذج

استخدم الأوامر التالية لتنزيل العينة:

git clone https://github.com/Azure-Samples/acme-fitness-store
cd acme-fitness-store

توفير مثيل خدمة

قم باستخدام الخطوات التالية لتوفير مثيل خدمة Azure Spring Apps.

  1. استخدم الأمر التالي لتسجيل الدخول إلى Azure CLI واختر اشتراكك النشط:

    az login
    az account list --output table
    az account set --subscription <subscription-ID>
    
  2. استخدم الأمر التالي لقبول الشروط القانونية وبيانات الخصوصية لخطة المؤسسة. هذه الخطوة ضرورية فقط إذا لم يتم استخدام اشتراكك لإنشاء مثيل خطة Enterprise من Azure Spring Apps.

    az provider register --namespace Microsoft.SaaS
    az term accept \
        --publisher vmware-inc \
        --product azure-spring-cloud-vmware-tanzu-2 \
        --plan asa-ent-hr-mtr
    
  3. تحديد الموقع. يجب أن يكون هذا الموقع موقعا يدعم خطة Azure Spring Apps Enterprise. لمزيد من المعلومات، راجع الأسئلة المتداولة عن Azure Spring Apps.

  4. إنشاء متغيرات للاحتفاظ بأسماء الموارد باستخدام الأوامر التالية. تأكد من استبدل العناصر النائبة بقيمتك الخاصة. يجب أن يتراوح طول اسم مثيل خدمة Azure Spring Apps بين 4 و32 حرفا ويمكن أن يحتوي فقط على أحرف صغيرة وأرقام وواصلات. يجب أن يكون الحرف الأول من اسم الخدمة حرفاً ويجب أن يكون الحرف الأخير إما حرفاً أو رقماً.

    export LOCATION="<location>"
    export RESOURCE_GROUP="<resource-group-name>"
    export SERVICE_NAME="<Azure-Spring-Apps-service-instance-name>"
    export WORKSPACE_NAME="<workspace-name>"
    
  5. استخدم الأمر التالي لإنشاء مجموعة موارد:

    az group create \
        --name ${RESOURCE_GROUP} \
        --location ${LOCATION}
    

    لمزيد من المعلومات حول مجموعات الموارد، انظر ما هو Azure Resource Manager ؟ .

  6. استخدم الأمر التالي لإنشاء مثيل خدمة لـ Azure Spring Apps:

    az spring create \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --sku enterprise \
        --enable-application-configuration-service \
        --enable-service-registry \
        --enable-gateway \
        --enable-api-portal
    
  7. استخدم الأمر التالي لإنشاء مساحة عمل لـ Log Analytics لاستخدامها لخدمة Azure Spring Apps:

    az monitor log-analytics workspace create \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --location ${LOCATION}
    
  8. استخدم الأوامر التالية لاسترداد معرف المورد لمساحة عمل Log Analytics ومثيل خدمة لـ Azure Spring Apps:

    export LOG_ANALYTICS_RESOURCE_ID=$(az monitor log-analytics workspace show \
        --resource-group ${RESOURCE_GROUP} \
        --workspace-name ${WORKSPACE_NAME} \
        --query id \
        --output tsv)
    
    export AZURE_SPRING_APPS_RESOURCE_ID=$(az spring show \
        --resource-group ${RESOURCE_GROUP} \
        --name ${SERVICE_NAME} \
        --query id \
        --output tsv)
    
  9. استخدم الأمر التالي لتكوين إعدادات التشخيص لخدمة Azure Spring Apps:

    az monitor diagnostic-settings create \
        --name "send-logs-and-metrics-to-log-analytics" \
        --resource ${AZURE_SPRING_APPS_RESOURCE_ID} \
        --workspace ${LOG_ANALYTICS_RESOURCE_ID} \
        --logs '[
             {
               "category": "ApplicationConsole",
               "enabled": true,
               "retentionPolicy": {
                 "enabled": false,
                 "days": 0
               }
             },
             {
                "category": "SystemLogs",
                "enabled": true,
                "retentionPolicy": {
                  "enabled": false,
                  "days": 0
                }
              },
             {
                "category": "IngressLogs",
                "enabled": true,
                "retentionPolicy": {
                  "enabled": false,
                  "days": 0
                 }
               }
           ]' \
           --metrics '[
             {
               "category": "AllMetrics",
               "enabled": true,
               "retentionPolicy": {
                 "enabled": false,
                 "days": 0
               }
             }
           ]'
    
  10. استخدم الأوامر التالية لإنشاء تطبيقات لـ cart-service وorder-service وpayment-service وcatalog-service وfrontend:

    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME}
    
    az spring app create \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME}
    

إضفاء الطابع الخارجي على التكوين باستخدام خدمة تكوين التطبيق

استخدم الخطوات التالية لتكوين خدمة تكوين التطبيق.

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

    az spring application-configuration-service git repo add \
        --resource-group ${RESOURCE_GROUP} \
        --name acme-fitness-store-config \
        --service ${SERVICE_NAME} \
        --label main \
        --patterns "catalog/default,catalog/key-vault,identity/default,identity/key-vault,payment/default" \
        --uri "https://github.com/Azure-Samples/acme-fitness-store-config"
    
  2. استخدم الأوامر التالية لربط التطبيقات بخدمة تكوين التطبيق:

    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app payment-service \
        --service ${SERVICE_NAME}
    
    az spring application-configuration-service bind \
        --resource-group ${RESOURCE_GROUP} \
        --app catalog-service \
        --service ${SERVICE_NAME}
    

تنشيط واكتشاف تسجيل الخدمة

لتسجيل الخدمة النشطة واكتشافها، استخدم الأوامر التالية لربط التطبيقات بسجل الخدمة:

az spring service-registry bind \
    --resource-group ${RESOURCE_GROUP} \
    --app payment-service \
    --service ${SERVICE_NAME}

az spring service-registry bind \
    --resource-group ${RESOURCE_GROUP} \
    --app catalog-service \
    --service ${SERVICE_NAME}

توزيع تطبيقات متعددة التقنيات باستخدام Tanzu Build Service

استخدم الخطوات التالية لتوزيع نموذج التطبيق. لهذه الخطوات، تأكد من أن المحطة الطرفية موجودة في مجلد المشروع قبل تشغيل أي أوامر.

  1. استخدم الأمر التالي لإنشاء منشئ مخصص في Tanzu Build Service:

    az spring build-service builder create \
        --resource-group ${RESOURCE_GROUP} \
        --name quickstart-builder \
        --service ${SERVICE_NAME} \
        --builder-file azure-spring-apps-enterprise/resources/json/tbs/builder.json
    
  2. استخدم الأمر التالي لإنشاء خدمة الدفع وتوزيعها:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name payment-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern payment/default \
        --source-path apps/acme-payment \
        --build-env BP_JVM_VERSION=17
    
  3. استخدم الأمر التالي لإنشاء خدمة الدليل وتوزيعها:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-service \
        --service ${SERVICE_NAME} \
        --config-file-pattern catalog/default \
        --source-path apps/acme-catalog \
        --build-env BP_JVM_VERSION=17
    
  4. استخدم الأمر التالي لإنشاء خدمة الطلب وتوزيعها:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name order-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --source-path apps/acme-order
    
  5. استخدم الأمر التالي لإنشاء خدمة عربة التسوق وتوزيعها:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-service \
        --service ${SERVICE_NAME} \
        --builder quickstart-builder \
        --env "CART_PORT=8080" \
        --source-path apps/acme-cart
    
  6. استخدم الأمر التالي لإنشاء تطبيق الواجهة الأمامية وتوزيعها:

    az spring app deploy \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend \
        --service ${SERVICE_NAME} \
        --source-path apps/acme-shopping
    

تلميح

لاستكشاف مشاكل التوزيع وإصلاحها، يمكنك استخدام الأمر التالي للحصول على سجلات تدفق في الوقت الحقيقي كلما كان التطبيق قيد التشغيل az spring app logs --name <app name> --follow.

توجيه الطلبات إلى التطبيقات باستخدام بوابة Spring Cloud

استخدم الخطوات التالية لتكوين بوابة Spring Cloud وتكوين المسارات إلى التطبيقات.

  1. استخدم الأمر التالي لتعيين نقطة نهاية إلى بوابة Spring Cloud:

    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. استخدم الأوامر التالية لتكوين معلومات واجهة برمجة تطبيقات بوابة Spring Cloud:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    az spring gateway update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --api-description "Fitness Store API" \
        --api-title "Fitness Store" \
        --api-version "v1.0" \
        --server-url "https://${GATEWAY_URL}" \
        --allowed-origins "*"
    
  3. استخدم الأمر التالي لإنشاء مسارات لخدمة عربة التسوق:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name cart-routes \
        --service ${SERVICE_NAME} \
        --app-name cart-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/cart-service.json
    
  4. استخدم الأمر التالي لإنشاء مسارات لخدمة الطلب:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name order-routes \
        --service ${SERVICE_NAME} \
        --app-name order-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/order-service.json
    
  5. استخدم الأمر التالي لإنشاء مسارات لخدمة الدليل:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name catalog-routes \
        --service ${SERVICE_NAME} \
        --app-name catalog-service \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service.json
    
  6. استخدم الأمر التالي لإنشاء مسارات للواجهة الأمامية:

    az spring gateway route-config create \
        --resource-group ${RESOURCE_GROUP} \
        --name frontend-routes \
        --service ${SERVICE_NAME} \
        --app-name frontend \
        --routes-file azure-spring-apps-enterprise/resources/json/routes/frontend.json
    
  7. استخدم الأوامر التالية لاسترداد عنوان محدد مواقع الويب لبوابة Spring Cloud:

    export GATEWAY_URL=$(az spring gateway show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    echo "https://${GATEWAY_URL}"
    

    يمكنك فتح عنوان محدد مواقع الويب للإخراج في مستعرض لاستكشاف التطبيق الموزَّع.

استعراض واجهات برمجة التطبيقات وتجربتها باستخدام مدخل API

استخدم الخطوات التالية لتكوين مدخل API.

  1. استخدم الأمر التالي لتعيين نقطة نهاية إلى مدخل API:

    az spring api-portal update \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --assign-endpoint true
    
  2. استخدم الأوامر التالية لاسترداد عنوان محدد مواقع الويب لمدخل API:

    export PORTAL_URL=$(az spring api-portal show \
        --resource-group ${RESOURCE_GROUP} \
        --service ${SERVICE_NAME} \
        --query properties.url \
        --output tsv)
    
    echo "https://${PORTAL_URL}"
    

    يمكنك فتح عنوان محدد مواقع الويب للإخراج في مستعرض لاستكشاف واجهة برمجة التطبيقات للتطبيق.


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

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

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

الخطوات التالية

الآن بعد أن نجحت في إنشاء وتوزيع تطبيقك، تابع إلى أي من عمليات التشغيل السريع الاختيارية التالية: