إنشاء مهام سير عمل التطبيقات المنطقية المستندة إلى مستأجر واحد ونشرها باستخدام التطبيقات المنطقية (معاينة) التي تدعم Azure Arc

ملاحظة

هذه الإمكانية قيد المعاينة وتخضع لشروط الاستخدام التكميلية لمعاينات Microsoft Azure.

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

على سبيل المثال، يمكن أن تكون هذه المجموعة خدمة Azure Kubernetes أو Kubernetes المعدنية أو إعدادًا آخر. تمكنك حزمة الملحقات من تشغيل خدمات النظام الأساسي مثل Azure Logic Apps وخدمة Azure App Service ووظائف Azure على مجموعة Kubernetes الخاصة بك.

لمعرفة مزيد من المعلومات، راجع الوثائق التالية:

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

يصف هذا القسم المتطلبات الأساسية الشائعة عبر جميع الأساليب والأدوات التي يمكنك استخدامها لإنشاء مهام سير عمل التطبيق المنطقي ونشرها. تظهر المتطلبات الأساسية الخاصة بالأدوات جنبا إلى جنب مع الخطوات المقابلة لها.

  • حساب Azure باشتراك نشط. إذا لم يكن لديك اشتراك Azure، أنشئ حساباً مجانياً.

  • بيئة Kubernetes مع مجموعة Kubernetes ممكنة من Azure Arc وموقع مخصص حيث يمكنك استضافة وتشغيل Azure Logic Apps وAzure App Service وAzure Functions.

    هام

    تأكد من استخدام نفس موقع المورد لبيئة Kubernetes والموقع المخصص والتطبيق المنطقي.

    عند إنشاء ملحق حزمة App Service على مجموعة Kubernetes، يمكنك تغيير سلوك القياس الافتراضي لتشغيل مهام سير عمل التطبيق المنطقي. عند إنشاء الملحق باستخدام الأمر Azure CLI، az k8s-extension createتأكد من تضمين إعداد التكوين، keda.enabled=true:

    az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"

    لمعرفة مزيد من المعلومات، راجع الوثائق التالية:

  • هوية Azure Active Directory (Azure AD) الخاصة بك

    إذا كانت مهام سير العمل بحاجة إلى استخدام أي اتصالات مستضافة من Azure، مثل Office 365 Outlook أو Azure Storage، فيجب أن يستخدم تطبيقك المنطقي هوية Azure AD للمصادقة. يمكن تشغيل التطبيقات المنطقية التي تدعم Azure Arc على أي بنية أساسية ولكنها تتطلب هوية لديها أذونات لاستخدام الاتصالات التي يستضيفها Azure. لإعداد هذه الهوية، قم بإنشاء تسجيل تطبيق في Azure AD يستخدمه تطبيقك المنطقي كهوية مطلوبة.

    ملاحظة

    لا يتوفر دعم الهوية المدارة حاليا للتطبيقات المنطقية التي تدعم Azure Arc.

    لإنشاء تسجيل تطبيق Azure Active Directory (Azure AD) باستخدام Azure CLI، اتبع الخطوات التالية:

    1. قم بإنشاء تسجيل تطبيق باستخدام الأمر az ad sp create .

    2. لمراجعة كافة التفاصيل، قم بتشغيل az ad sp show الأمر.

    3. من إخراج كلا الأمرين ، ابحث عن معرف العميل ومعرف الكائن ومعرف المستأجر والقيم السرية للعميل واحفظها ، والتي تحتاج إلى الاحتفاظ بها لاستخدامها لاحقا.

    لإنشاء تسجيل تطبيق Azure Active Directory (Azure AD) باستخدام مدخل Azure، اتبع الخطوات التالية:

    1. قم بإنشاء تسجيل تطبيق Azure AD جديد باستخدام مدخل Azure.

    2. بعد انتهاء الإنشاء، ابحث عن تسجيل التطبيق الجديد في البوابة الإلكترونية.

    3. في قائمة التسجيل، حدد نظرة عامة، واحفظ معرف العميل ومعرف المستأجر والقيم السرية للعميل.

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

إنشاء تطبيقات منطقية ونشرها

استنادا إلى ما إذا كنت تريد استخدام Azure CLI أو Visual Studio Code أو مدخل Azure، حدد علامة التبويب المطابقة لمراجعة المتطلبات والخطوات المحددة.

قبل البدء ، يجب أن يكون لديك العناصر التالية:

التحقق من البيئة وإصدار CLI

  1. سجّل الدخول إلى مدخل Azure. تحقق من أن اشتراكك نشط عن طريق تشغيل الأمر التالي:

    az login
    
  2. تحقق من إصدار Azure CLI الخاص بك في نافذة طرفية أو نافذة أوامر عن طريق تشغيل الأمر التالي:

    az --version
    

    للحصول على أحدث إصدار، راجع ملاحظات الإصدار الأخيرة .

  3. إذا لم يكن لديك أحدث إصدار، فحدِّث التثبيت باتباع دليل التثبيت لنظام التشغيل أو النظام الأساسي لديك .

تثبيت ملحق Azure Logic Apps (Standard) ل Azure CLI

قم بتثبيت ملحق معاينة Azure Logic Apps (قياسي) أحادي المستأجر ل Azure CLI عن طريق تشغيل الأمر التالي:

az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"

إنشاء مجموعة الموارد

إذا لم يكن لديك بالفعل مجموعة موارد لتطبيقك المنطقي، فقم بإنشاء المجموعة عن طريق تشغيل الأمر، az group create. ما لم تقم بالفعل بتعيين اشتراك افتراضي لحساب Azure الخاص بك، تأكد من استخدام المعلمة --subscription مع اسم الاشتراك أو معرفه. خلاف ذلك ، لن تضطر إلى استخدام المعلمة --subscription .

تلميح

لتعيين اشتراك افتراضي، قم بتشغيل الأمر التالي، واستبدله MySubscription باسم الاشتراك أو معرفه.

az account set --subscription MySubscription

على سبيل المثال، ينشئ الأمر التالي مجموعة موارد تسمى MyResourceGroupName باستخدام اشتراك Azure المسمى MySubscription في الموقع eastus:

az group create --name MyResourceGroupName 
   --subscription MySubscription 
   --location eastus

إذا تم إنشاء مجموعة الموارد بنجاح، فسيظهر الإخراج على provisioningState النحو التالي Succeeded:

<...>
   "name": "testResourceGroup",
   "properties": {
      "provisioningState": "Succeeded"
    },
<...>

إنشاء تطبيق منطقي

لإنشاء تطبيق منطقي ممكن بواسطة Azure Arc، قم بتشغيل الأمر، az logicapp createمع المعلمات المطلوبة التالية. يجب أن تكون مواقع الموارد لتطبيقك المنطقي وموقعك المخصص وبيئة Kubernetes متشابهة.

المعلمات الوصف
--name -n اسم فريد لتطبيقك المنطقي
--resource-group -g اسم مجموعة الموارد التي تريد إنشاء تطبيق المنطق فيها. إذا لم يكن لديك واحد لاستخدامه، فقم بإنشاء مجموعة موارد.
--storage-account -s حساب التخزين المطلوب استخدامه مع تطبيقك المنطقي. بالنسبة لحسابات التخزين في نفس مجموعة الموارد، استخدم قيمة سلسلة. بالنسبة لحسابات التخزين في مجموعة موارد مختلفة، استخدم معرف مورد.
az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation

لإنشاء تطبيق منطقي ممكن بواسطة Azure Arc باستخدام صورة خاصة لتسجيل حاوية Azure (ACR)، قم بتشغيل الأمر، az logicapp createمع المعلمات المطلوبة التالية:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   --deployment-container-image-name myacr.azurecr.io/myimage:tag
   --docker-registry-server-password MyPassword 
   --docker-registry-server-user MyUsername

إظهار تفاصيل التطبيق المنطقي

لإظهار تفاصيل حول تطبيق المنطق الذي تم تمكين Azure Arc له، قم بتشغيل الأمر، az logicapp showمع المعلمات المطلوبة التالية:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

نشر تطبيق المنطق

لنشر تطبيق المنطق الذي تم تمكين Azure Arc فيه باستخدام نشر Kudu zip الخاص ب Azure App Service، قم بتشغيل الأمر، az logicapp deployment source config-zipباستخدام المعلمات المطلوبة التالية:

هام

تأكد من أن الملف المضغوط يحتوي على القطع الأثرية لمشروعك على مستوى الجذر. تتضمن هذه القطع الأثرية كافة مجلدات سير العمل وملفات التكوين مثل host.json وconnections.json وأي ملفات أخرى ذات صلة. لا تقم بإضافة أي مجلدات إضافية أو وضع أي قطع أثرية في مجلدات غير موجودة بالفعل في بنية مشروعك. على سبيل المثال، تعرض هذه القائمة مثالا MyBuildArtifacts.zip بنية الملف:

MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --src MyBuildArtifact.zip

بدء تطبيق المنطق

لبدء تشغيل تطبيق المنطق الذي تم تمكين Azure Arc، قم بتشغيل الأمر، az logicapp startمع المعلمات المطلوبة التالية:

az logicapp start --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

تطبيق إيقاف المنطق

لإيقاف تطبيق المنطق الذي تم تمكين Azure Arc عليه، قم بتشغيل الأمر، az logicapp stopباستخدام المعلمات المطلوبة التالية:

az logicapp stop --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

إعادة تشغيل التطبيق المنطقي

لإعادة تشغيل تطبيق المنطق الذي تم تمكين Azure Arc له، قم بتشغيل الأمر، az logicapp restartباستخدام المعلمات المطلوبة التالية:

az logicapp restart --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

حذف التطبيق المنطقي

لحذف تطبيق المنطق الذي تم تمكين Azure Arc له، قم بتشغيل الأمر، az logicapp deleteمع المعلمات المطلوبة التالية:

az logicapp delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

إعداد مصادقة الاتصال

حاليا، لا تدعم مجموعات Kubernetes التي تدعم Azure Arc استخدام الهوية المدارة لتطبيق منطقي لمصادقة اتصالات واجهة برمجة التطبيقات المدارة. يمكنك إنشاء هذه الاتصالات المدارة والمستضافة من Azure عند استخدام الموصلات المدارة في مهام سير العمل.

بدلا من ذلك، يجب عليك إنشاء تسجيل التطبيق الخاص بك في Azure Active Directory (Azure AD). يمكنك بعد ذلك استخدام تسجيل التطبيق هذا كهوية للتطبيقات المنطقية التي يتم نشرها وتشغيلها في التطبيقات المنطقية التي تدعم Azure Arc. لمزيد من المعلومات، راجع المتطلبات الأساسية للمستوى الأعلى.

من تسجيل التطبيق، تحتاج إلى معرف العميل ومعرف الكائن ومعرف المستأجر وسر العميل. إذا كنت تستخدم Visual Studio Code للنشر، فستكون لديك تجربة مضمنة لإعداد تطبيقك المنطقي باستخدام هوية Azure AD. لمزيد من المعلومات، راجع إنشاء مهام سير عمل التطبيق المنطقي ونشرها - Visual Studio Code.

ومع ذلك، إذا كنت تستخدم التعليمات البرمجية Visual Studio للتطوير، ولكنك تستخدم Azure CLI أو خطوط الأنابيب التلقائية للنشر، فاتبع الخطوات التالية.

تكوين إعدادات الاتصال والتطبيق في مشروعك

  1. في ملف connections.json الخاص بمشروع التطبيق المنطقي، ابحث عن كائن الاتصال المدار authentication . استبدل محتويات هذا الكائن بمعلومات تسجيل التطبيق، التي قمت بإنشائها مسبقا في متطلبات المستوى الأعلى:

    "authentication": {
       "type": "ActiveDirectoryOAuth",
       "audience": "https://management.core.windows.net/",
       "credentialType": "Secret",
       "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')",
       "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')",
       "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')"
    } 
    
  2. في ملف local.settings.json الخاص بمشروع التطبيق المنطقي، أضف معرف العميل ومعرف الكائن ومعرف المستأجر وسر العميل. بعد النشر، تصبح هذه الإعدادات إعدادات التطبيق المنطقي.

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>",
          "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID",
          "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>",
          "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>"
       }
    }
    

هام

بالنسبة لسيناريوهات الإنتاج أو البيئات، تأكد من حماية هذه الأسرار والمعلومات الحساسة وتأمينها، على سبيل المثال، باستخدام مخزن رئيسي.

إضافة سياسات الوصول

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

قالب ARM

في قالب Azure Resource Manager (قالب ARM)، قم بتضمين تعريف المورد التالي لكل اتصال واجهة برمجة تطبيقات مدار وقم بتوفير المعلومات التالية:

المعلمة الوصف
<اسم الاتصال> اسم اتصال واجهة برمجة التطبيقات المدارة، على سبيل المثال office365
<معرف الكائن> معرف الكائن لهوية Azure AD، المحفوظة مسبقا من تسجيل التطبيق
<معرف المستأجر> معرف المستأجر لهوية Azure AD الخاصة بك، والتي تم حفظها مسبقا من تسجيل التطبيق
{
   "type": "Microsoft.Web/connections/accessPolicies",
   "apiVersion": "2016-06-01",
   "name": "[concat('<connection-name>'),'/','<object-ID>')]",
   "location": "<location>",
   "dependsOn": [
      "[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
   ],
   "properties": {
      "principal": {
         "type": "ActiveDirectory",
         "identity": {
            "objectId": "<object-ID>",
            "tenantId": "<tenant-ID>"
         }
      }
   }
}

لمزيد من المعلومات، راجع وثائق Microsoft.Web/connections/accesspolicies (قالب ARM ).

مدخل Azure

لهذه المهمة، استخدم معرف العميل المحفوظ مسبقا كمعرف التطبيق.

  1. في مدخل Azure، ابحث عن تطبيق المنطق وافتحه. في قائمة تطبيق المنطق، ضمن مهام سير العمل، حدد الاتصالات، التي تسرد جميع الاتصالات في مهام سير عمل تطبيق المنطق.

  2. ضمن اتصالات واجهة برمجة التطبيقات، حدد اتصالا، وهو موجود office365 في هذا المثال.

  3. في قائمة الاتصال، ضمن الإعدادات، حدد سياسات الوصولإضافة>.

  4. في جزء نهج إضافة وصول، في مربع البحث، ابحث عن معرف العميل المحفوظ مسبقا وحدده.

  5. عند الانتهاء، حدد إضافة.

  6. كرر هذه الخطوات لكل اتصال مستضاف من Azure في تطبيقك المنطقي.

أتمتة نشر DevOps

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

النشر القياسي (بدون حاوية)

إذا كنت تستخدم zip deploy لنشر التطبيق المنطقي، فلن تحتاج إلى إعداد سجل Docker لاستضافة صور الحاويات. على الرغم من أن التطبيقات المنطقية على Kubernetes تعمل تقنيا على الحاويات، إلا أن التطبيقات المنطقية التي تدعم Azure Arc تدير هذه الحاويات نيابة عنك. بالنسبة لهذا السيناريو، أكمل المهام التالية عند إعداد البنية الأساسية الخاصة بك:

  • قم بإعلام موفر الموارد بأنك تقوم بإنشاء تطبيق منطقي على Kubernetes.
  • قم بتضمين خطة خدمة التطبيق مع النشر. لمزيد من المعلومات، راجع تضمين خطة خدمة التطبيق مع النشر.

في قالب Azure Resource Manager (قالب ARM) ، قم بتضمين القيم التالية:

Item خاصية JSON الوصف
‏‏الموقع location تأكد من استخدام نفس موقع المورد (منطقة Azure) مثل موقعك المخصص وبيئة Kubernetes. يجب أن تكون مواقع الموارد لتطبيقك المنطقي وموقعك المخصص وبيئة Kubernetes متشابهة.

ملاحظة: هذه القيمة ليست هي نفسها اسم موقعك المخصص.

نوع التطبيق kind نوع التطبيق الذي تقوم بنشره حتى يتمكن النظام الأساسي ل Azure من تحديد تطبيقك. بالنسبة لتطبيقات Azure المنطقية، تبدو هذه المعلومات مثل المثال التالي: kubernetes,functionapp,workflowapp,linux
الموقع الممتد extendedLocation يتطلب هذا الكائن موقعك المخصص لبيئة Kubernetes الخاصة بك ويجب أن يكون لديه "type" التعيين "name" إلى "CustomLocation".
معرف مورد خطة الاستضافة serverFarmId معرف المورد الخاص بخطة خدمة التطبيقات المقترنة، المنسقة على النحو التالي:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

سلسلة اتصال التخزين AzureWebJobsStorage سلسلة الاتصال لحساب التخزين الخاص بك

ملاحظة مهمة: تحتاج إلى توفير سلسلة الاتصال لحساب التخزين الخاص بك في قالب ARM. بالنسبة لسيناريوهات الإنتاج أو البيئات، تأكد من حماية هذه الأسرار والمعلومات الحساسة وتأمينها، على سبيل المثال، باستخدام مخزن رئيسي.

قالب ARM

يصف المثال التالي نموذجا لتعريف مورد Logic Apps ممكن بواسطة Azure Arc يمكنك استخدامه في قالب ARM. لمزيد من المعلومات، راجع وثائق تنسيق قالب Microsoft.Web/sites (JSON ).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": "kubernetes,functionapp,workflowapp,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "clientAffinityEnabled": false,
      "name": "[parameters('name')]",
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "Node|12"
      }
   }
}

نشر الحاوية

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

  • قم بإعداد سجل Docker لاستضافة صور الحاوية الخاصة بك.

  • لاحتواء تطبيقك المنطقي في حاويات، أضف ملف Dockerfile التالي إلى المجلد الجذر لمشروع التطبيق المنطقي، واتبع الخطوات اللازمة لإنشاء صورة ونشرها في سجل Docker، على سبيل المثال، راجع البرنامج التعليمي: إنشاء صور حاوية ونشرها في السحابة باستخدام مهام تسجيل حاوية Azure.

    ملاحظة

    إذا كنت تستخدم SQL كموفر تخزين، فتأكد من استخدام الإصدار 3.3.1 من صورة Azure Functions أو إصدار أحدث.

    FROM mcr.microsoft.com/azure-functions/node:3.3.1
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
    FUNCTIONS_V2_COMPATIBILITY_MODE=true
    COPY . /home/site/wwwroot
    RUN cd /home/site/wwwroot
    
  • قم بإعلام موفر الموارد بأنك تقوم بإنشاء تطبيق منطقي على Kubernetes.

  • في قالب النشر، أشر إلى سجل Docker وصورة الحاوية حيث تخطط للنشر. تستخدم تطبيقات Azure Logic Apps ذات المستأجر الواحد هذه المعلومات للحصول على صورة الحاوية من سجل Docker.

  • قم بتضمين خطة خدمة التطبيق مع النشر. لمزيد من المعلومات، راجع تضمين خطة خدمة التطبيق مع النشر.

في قالب Azure Resource Manager (قالب ARM)، قم بتضمين القيم التالية:

Item خاصية JSON الوصف
‏‏الموقع location تأكد من استخدام نفس موقع المورد (منطقة Azure) مثل موقعك المخصص وبيئة Kubernetes. يجب أن تكون مواقع الموارد لتطبيقك المنطقي وموقعك المخصص وبيئة Kubernetes متشابهة.

ملاحظة: هذه القيمة ليست هي نفسهااسم موقعك المخصص.

نوع التطبيق kind نوع التطبيق الذي تقوم بنشره حتى يتمكن النظام الأساسي ل Azure من تحديد تطبيقك. بالنسبة لتطبيقات Azure المنطقية، تبدو هذه المعلومات مثل المثال التالي: kubernetes,functionapp,workflowapp,container
الموقع الممتد extendedLocation يتطلب هذا الكائن "name"موقعك المخصص لبيئة Kubernetes الخاصة بك ويجب أن يكون قد "type" تم تعيينه على "CustomLocation".
اسم الحاوية linuxFxVersion اسم الحاوية الخاصة بك، منسقة على النحو التالي: DOCKER\|<container-name>
معرف مورد خطة الاستضافة serverFarmId معرف المورد الخاص بخطة خدمة التطبيقات المقترنة، المنسقة على النحو التالي:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

سلسلة اتصال التخزين AzureWebJobsStorage سلسلة الاتصال لحساب التخزين الخاص بك

ملاحظة مهمة: عند النشر في حاوية Docker، ستحتاج إلى توفير سلسلة الاتصال لحساب التخزين الخاص بك في قالب ARM. بالنسبة لسيناريوهات الإنتاج أو البيئات، تأكد من حماية هذه الأسرار والمعلومات الحساسة وتأمينها، على سبيل المثال، باستخدام مخزن رئيسي.

للرجوع إلى سجل Docker وصورة الحاوية، قم بتضمين هذه القيم في القالب:

Item خاصية JSON الوصف
عنوان URL لخادم تسجيل Docker DOCKER_REGISTRY_SERVER_URL عنوان URL لخادم تسجيل Docker
خادم تسجيل Docker DOCKER_REGISTRY_SERVER_USERNAME اسم المستخدم للوصول إلى خادم تسجيل Docker
كلمة مرور خادم تسجيل Docker DOCKER_REGISTRY_SERVER_PASSWORD كلمة المرور للوصول إلى خادم تسجيل Docker

قالب ARM

يصف المثال التالي نموذجا لتعريف مورد Logic Apps ممكن بواسطة Azure Arc يمكنك استخدامه في قالب ARM. لمزيد من المعلومات، راجع وثائق تنسيق قالب Microsoft.Web/sites (قالب ARM ).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": " kubernetes,functionapp,workflowapp,container",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "name": "[parameters('name')]",
      "clientAffinityEnabled": false,
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }, 
            {
               "name": "DOCKER_REGISTRY_SERVER_URL",
               "value": "<docker-registry-server-URL>"
            },
            { 
               "name": "DOCKER_REGISTRY_SERVER_USERNAME",
               "value": "<docker-registry-server-username>"
            },
            {
               "name": "DOCKER_REGISTRY_SERVER_PASSWORD",
               "value": "<docker-registry-server-password>"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "DOCKER|<container-name>"
      }
   }
}

تضمين خطة خدمة التطبيق مع النشر

سواء كان لديك نشر قياسي أو حاوية ، يجب عليك تضمين خطة خدمة التطبيق مع النشر. على الرغم من أن هذه الخطة تصبح أقل ملاءمة مع بيئة Kubernetes ، إلا أن عمليات النشر القياسية والحاويات لا تزال تتطلب خطة App Service.

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

في قالب Azure Resource Manager (قالب ARM)، قم بتضمين القيم التالية:

Item خاصية JSON الوصف
‏‏الموقع location تأكد من استخدام نفس موقع المورد (منطقة Azure) مثل موقعك المخصص وبيئة Kubernetes. يجب أن تكون مواقع الموارد لتطبيقك المنطقي وموقعك المخصص وبيئة Kubernetes متشابهة.

ملاحظة: هذه القيمة ليست هي نفسها اسم موقعك المخصص.

النوع kind نوع خطة خدمة التطبيق التي يتم نشرها والتي يجب أن تكون kubernetes,linux
الموقع الممتد extendedLocation يتطلب هذا الكائن "name"موقعك المخصص لبيئة Kubernetes الخاصة بك ويجب أن يكون قد "type" تم تعيينه على "CustomLocation".
⁧⁩اسم خطة الاستضافة⁧⁩ name اسم خطة خدمة التطبيقات
فئة الخطة sku: tier طبقة خطة خدمة التطبيق، وهي K1
اسم الخطة sku: name اسم خطة خدمة التطبيق، وهو Kubernetes

قالب ARM

يصف المثال التالي نموذجا لتعريف مورد خطة خدمة التطبيقات الذي يمكنك استخدامه مع نشر التطبيق. لمزيد من المعلومات، راجع وثائق تنسيق قالب Microsoft.Web/serverfarms (قالب ARM ).

{
   "type": "Microsoft.Web/serverfarms",
   "apiVersion": "2020-12-01",
   "location": "<location>",
   "name": "<hosting-plan-name>",
   "kind": "kubernetes,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
   },
   "sku": {
      "tier": "K1",
      "name": "Kubernetes", 
      "capacity": 1
   },
   "properties": {
      "kubeEnvironmentProfile": {
         "id": "[parameters('kubeEnvironmentId')]"
      }
   }
}

تغيير سلوك القياس الافتراضي

تدير التطبيقات المنطقية التي تدعم Azure Arc تلقائيا عملية القياس لتطبيقاتك المنطقية استنادا إلى عدد المهام في قائمة انتظار التخزين الخلفية. ومع ذلك، يمكنك تغيير سلوك القياس الافتراضي.

في تطبيق منطقي، يحدد تعريف سير العمل تسلسل الإجراءات المطلوب تشغيلها. كلما تم تشغيل سير عمل، يقوم وقت تشغيل Azure Logic Apps بإنشاء مهمة لكل نوع إجراء في تعريف سير العمل. ثم ينظم وقت التشغيل هذه الوظائف في تسلسل الوظائف. يقوم هذا المتسلسل بتنسيق تشغيل المهام لتعريف سير العمل، ولكن يقوم محرك تنسيق المهام الأساسي في Azure Logic Apps بتشغيل كل مهمة.

بالنسبة لمهام سير العمل الجيدة، يستخدم محرك تنسيق المهام رسائل قائمة انتظار التخزين لجدولة المهام في أجهزة تسلسل المهام. خلف الكواليس، يراقب مرسلو الوظائف (أو مثيلات عمال المرسل) قوائم انتظار الوظائف هذه. يستخدم محرك التزامن الحد الأدنى والحد الأقصى الافتراضي لعدد مثيلات العمال لمراقبة قوائم انتظار المهام. بالنسبة لمهام سير العمل عديمة الجنسية، يحتفظ محرك التنسيق تماما بحالات الحركة في الذاكرة.

لتغيير سلوك القياس الافتراضي، يمكنك تحديد عدد مختلف من مثيلات العمال التي تراقب قوائم انتظار المهام والحد الأقصى لها.

المتطلبات الأساسية لتغيير القياس

في مجموعة Kubernetes التي تم تمكين Azure Arc لها، يجب أن يكون لملحق حزمة خدمة التطبيقات الذي تم إنشاؤه مسبقا الخاصية مضبوطة keda.enabled على true. لمزيد من المعلومات، راجع المتطلبات الأساسية للمستوى الأعلى.

تغيير عتبة القياس

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

لتغيير طول قائمة الانتظار، في ملف host.json على مستوى الجذر لمشروع التطبيق المنطقي، قم بتعيين Runtime.ScaleMonitor.KEDA.TargetQueueLength الخاصية، على سبيل المثال:

"extensions": {
   "workflow": {
      "settings": {
         "Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
      }
   }
}

تغيير الحد الأقصى للإنتاجية

على مورد تطبيق منطقي موجود، يمكنك تغيير الحد الأقصى لعدد مثيلات العاملين، والذي تم تعيين القيمة الافتراضية إلى 2. تتحكم هذه القيمة في الحد الأعلى لعدد مثيلات العمال التي يمكنها مراقبة قوائم انتظار الوظائف.

لتغيير هذا الحد الأقصى، استخدم Azure CLI (إنشاء التطبيق المنطقي فقط) ومدخل Azure.

Azure CLI

لإنشاء تطبيق منطقي جديد، قم بتشغيل الأمر، az logicapp createباستخدام المعلمات التالية:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]

لتكوين الحد الأقصى لعدد المثيلات، استخدم المعلمة --settings :

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --settings "K8SE_APP_MAX_INSTANCE_COUNT=10"

مدخل Azure

في إعدادات تطبيق المنطق المستند إلى مستأجر واحد، أضف قيمة الإعداد أو حررها K8SE_APP_MAX_INSTANCE_COUNT باتباع الخطوات التالية:

  1. في مدخل Azure، ابحث عن تطبيق المنطق المستند إلى مستأجر واحد وافتحه.

  2. في قائمة التطبيق المنطقي، ضمن الإعدادات، حدد تكوين.

  3. في جزء التكوين ، ضمن إعدادات التطبيق، يمكنك إما إضافة إعداد تطبيق جديد أو تحرير القيمة الموجودة، إذا تمت إضافتها بالفعل.

    1. حدد إعداد تطبيق جديد، وأضف K8SE_APP_MAX_INSTANCE_COUNT الإعداد بالقيمة القصوى التي تريدها.

    2. قم بتحرير القيمة الموجودة للإعداد K8SE_APP_MAX_INSTANCE_COUNT .

  4. عند الانتهاء، احفظ التغييرات.

تغيير الحد الأدنى للإنتاجية

على مورد تطبيق منطقي موجود، يمكنك تغيير الحد الأدنى لعدد مثيلات العاملين، والذي تم تعيين القيمة الافتراضية إلى 1. تتحكم هذه القيمة في الحد الأدنى لعدد مثيلات العمال التي يمكنها مراقبة قوائم انتظار الوظائف. للحصول على توفر أو أداء عاليين، قم بزيادة هذه القيمة.

لتغيير هذا الحد الأدنى، استخدم Azure CLI أو مدخل Azure.

Azure CLI

بالنسبة لمورد تطبيق منطقي موجود، قم بتشغيل الأمر، az logicapp scaleباستخدام المعلمات التالية:

az logicapp scale --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --instance-count 5 

لإنشاء تطبيق منطقي جديد، قم بتشغيل الأمر، az logicapp createباستخدام المعلمات التالية:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]

مدخل Azure

في إعدادات التطبيق المنطقي المستند إلى مستأجر واحد، قم بتغيير قيمة الخاصية "توسيع النطاق" باتباع الخطوات التالية:

  1. في مدخل Azure، ابحث عن تطبيق المنطق المستند إلى مستأجر واحد وافتحه.

  2. في قائمة التطبيق المنطقي، ضمن الإعدادات، حدد قياس.

  3. في الجزء تغيير الحجم ، اسحب شريط تمرير الحد الأدنى للمثيلات إلى القيمة التي تريدها.

  4. عند الانتهاء، احفظ التغييرات.

استكشاف المشاكل وإصلاحها

للحصول على مزيد من المعلومات حول التطبيقات المنطقية المنشورة، جرب الخيارات التالية:

الوصول إلى إعدادات التطبيق وتكوينه

للوصول إلى إعدادات التطبيق، قم بتشغيل الأمر، az logicapp config appsettingsمع المعلمات التالية:

az logicapp config appsettings list --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

لتكوين إعداد تطبيق، قم بتشغيل الأمر، az logicapp config appsettings setمع المعلمات التالية. تأكد من استخدام المعلمة --settings مع اسم الإعداد وقيمته.

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --settings "MySetting=1"

لحذف إعداد تطبيق، قم بتشغيل الأمر، ، az logicapp config appsettings deleteباستخدام المعلمات التالية. تأكد من استخدام المعلمة --setting-names مع اسم الإعداد الذي تريد حذفه.

az logicapp config appsettings delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --setting-names MySetting

عرض خصائص التطبيق المنطقي

لعرض معلومات تطبيقك وخصائصه، قم بتشغيل الأمر، az logicapp showباستخدام المعلمات التالية:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

مراقبة نشاط سير العمل

لعرض النشاط لسير عمل في تطبيق المنطق الخاص بك، اتبع الخطوات التالية:

  1. في مدخل Azure، ابحث عن تطبيق المنطق المنشور وافتحه.

  2. من القائمة تطبيق المنطق، حدد سير العمل، ثم حدد سير العمل.

  3. في قائمة سير العمل، حدد مراقبة.

جمع السجلات

للحصول على بيانات مسجلة حول تطبيقك المنطقي، قم بتمكين تطبيق Insights على تطبيقك المنطقي إذا لم يكن ممكنا بالفعل.

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