إنشاء وتوزيع مهام سير عمل logic app المستند إلى المستأجر الواحد باستخدام Logic Apps المُمكّنة في Azure Arc (معاينة)

إشعار

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

باستخدام Logic Apps المُمكّنة في Azure Arc ومدخل Microsoft Azure يمكنك إنشاء وتوزيع مهام سير عمل logic app المستند إلى المستأجر الواحد إلى بنية Kubernetes الأساسية التي تقوم بتشغيلها وإدارتها. تعمل Logic Apps في موقع مخصص تم تعيينه إلى نظام مجموعة Kubernetes المُمكّنة في Azure Arc حيث قمت بتثبيت وتمكين مجموعة ملحقات النظام الأساسي لخدمة Azure App Service.

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

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

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

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

  • حساب Azure مع اشتراك نشط. إذا لم يكن لديك اشتراك Azure، فيمكنك إنشاء حساب مجاني.

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

    هام

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

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

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

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

  • هوية Microsoft Entra الخاصة بك

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

    إشعار

    دعم الهوية المُدارة غير متوفر حالياً لـ Logic Apps المُمكّنة في Azure Arc.

    لإنشاء تسجيل تطبيق Microsoft Entra باستخدام Azure CLI، اتبع الخطوات التالية:

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

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

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

    لإنشاء تسجيل تطبيق Microsoft Entra باستخدام مدخل Microsoft Azure، اتبع الخطوات التالية:

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

    2. بعد انتهاء الإنشاء، ابحث عن تسجيل التطبيق الجديد في المدخل.

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

    4. للعثور على معرّف العنصر، بجوار حقل "Managed application in local directory"، حدد اسم تسجيل التطبيق. من عرض الخصائص، انسخ معرّف العنصر.

إنشاء logic apps وتوزيعها

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

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

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

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

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

    az --version
    

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

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

قم بتثبيت ملحق Azure Logic Apps (قياسي) لـ Azure CLI

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

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

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

إذا لم تكن لديك بالفعل مجموعة موارد لـ logic app، فيرجى إنشاؤها باستخدام الأمر 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"
    },
<...>

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

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

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

لإنشاء logic app مُمكّن في Azure Arc باستخدام صورة Azure Container Registry (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

إظهار تفاصيل logic app

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

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

توزيع logic app

لتوزيع logic app المُمكّن في Azure Arc باستخدام توزيع Kudu المضغوط لـ Azure App Service، قم بتشغيل الأمر، az logicapp deployment source config-zip، مع المعلمات المطلوبة التالية:

هام

تأكد من أن الملف المضغوط يحتوي على البيانات الاصطناعية مشروعك على مستوى الجذر. تتضمن هذه النتائج كل مجلدات سير العمل وملفات التكوين مثل host.json وlinks.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

بدء logic app

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

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

إيقاف logic app

لإيقاف تشغيل logic app المُمكّن في Azure Arc، قم بتشغيل الأمر، az logicapp stop، مع المعلمات المطلوبة التالية:

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

إعادة تشغيل logic app

لإعادة تشغيل logic app المُمكّن في Azure Arc، قم بتشغيل الأمر، az logicapp restart، مع المعلمات المطلوبة التالية:

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

حذف logic app

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

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

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

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

بدلا من ذلك، يجب عليك إنشاء تسجيل التطبيق الخاص بك في معرف Microsoft Entra. يمكنك بعد ذلك استخدام تسجيل التطبيق هذا كهوية لـ logic apps الموزعة وتشغيلها في Logic Apps المُمكّنة في Azure Arc. لمزيد من المعلومات، راجع المتطلبات الأساسية للمستوى الأعلى.

من تسجيل التطبيق، تحتاج إلى معرّف العميل ومعرّف العنصر ومعرّف المستأجر وسر العميل. إذا كنت تستخدم Visual Studio Code للنشر، فلديك تجربة مضمنة لإعداد تطبيق المنطق الخاص بك باستخدام هوية Microsoft Entra. لمزيد من المعلومات، راجع إنشاء مهام سير عمل logic app وتوزيعها - Visual Studio Code.

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

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

  1. في ملف connections.json الخاص بمشروع logic app، ابحث عن عنصر الاتصال المُدار 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 الخاص بمشروع logic app، أضف معرّف العميل ومعرّف العنصر ومعرّف المستأجر وسر العميل. بعد التوزيع، تصبح هذه الإعدادات إعدادات logic app الخاص بك.

    {
       "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>"
       }
    }
    

هام

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

إضافة نهج الوصول

في Azure Logic Apps أحادية المستأجر، يحتوي كل logic app على هوية بأذونات معطاة بواسطة نهج الوصول لاستخدام الاتصالات المُدارة والمستضافة من Azure. يمكنك إعداد نهج الوصول باستخدام مدخل Microsoft Azure أو عمليات توزيع البنية الأساسية.

قالب ARM

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

المعلمة ‏‏الوصف‬
<اسم الاتصال> اسم اتصال واجهة برمجة التطبيقات المُدارة، على سبيل المثال office365
<معرّف العنصر> معرف الكائن لهوية Microsoft Entra، المحفوظة مسبقا من تسجيل التطبيق
<معرف المستأجر> معرف المستأجر لهوية Microsoft Entra، المحفوظة مسبقا من تسجيل التطبيق الخاص بك
{
   "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. في مدخل Microsoft Azure، ابحث عن تطبيق المنطق الخاص بك وافتحه. في قائمة logic app الخاص بك، ضمن "Workflows"، حدد "Connections"، والتي تسرد جميع الاتصالات في مهام سير عملlogic app.

  2. ضمن "API Connections"، حدد اتصالاً، office365 الموجود في هذا المثال.

  3. في قائمة "Connections"، ضمن "Settings"، حدد "Access policies>Add".

  4. في جزء "Add access policy"، في مربع البحث، ابحث عن معرّف العميل المحفوظ مسبقاً وحدده.

  5. عندما تنتهي، حدد إضافة.

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

التوزيع التلقائي لـ DevOps

لإنشاء وتوزيع logic apps المُمكّنة في Azure Arc، يمكنك استخدام المسارات والعمليات نفسها مثل logic apps المستندة إلى المستأجر الواحد. للتشغيل التلقائي لعمليات توزيع البنية الأساسية باستخدام المسارات لـ DevOps، نفذ التغييرات التالية على مستوى البنية الأساسية لكل من عمليات التوزيع غير الحاوية والحاوية.

التوزيع القياسي (غير الحاوية)

إذا كنت تستخدم توزيع zip لتوزيع logic app، فلن تحتاج إلى إعداد سجل Docker لاستضافة نسخ الحاوية. على الرغم من أن logic apps على Kubernetes تعمل تقنياً على الحاويات، فإن Logic Apps المُمكّنة في Azure Arc تدير هذه الحاويات. لهذا السيناريو، أكمل المهام التالية عند إعداد البنية الأساسية:

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

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

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

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

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

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

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

قالب 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"
      }
   }
}

نشر الحاوية

إذا كنت تفضل استخدام أدوات الحاوية وعمليات التوزيع، يمكنك وضع logic apps الخاصة بك في حاويات وتوزيعها إلى Logic Apps المُمكّنة في Azure Arc. لهذا السيناريو، أكمل المهام عالية المستوى التالية عند إعداد بينتك الأساسية:

  • إعداد سجل Docker لاستضافة نسخ حاويتك.

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

    إشعار

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

    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
    
  • أعلم موفر المورد بأنك تُنشئ logic app على Kubernetes.

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

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

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

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

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

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

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

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

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

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

العنصر خاصية 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>"
      }
   }
}

تضمين خطة App Service مع التوزيع

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

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

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

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

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

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

قالب ARM

يصف المثال التالي نموذج تعريف مورد خطة App Service التي يمكنك استخدامها مع توزيع تطبيقك. لمزيد من المعلومات، راجع وثائق تنسيق قالب 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": "Kubernetes",
      "name": "K1", 
      "capacity": 1
   },
   "properties": {
      "kubeEnvironmentProfile": {
         "id": "[parameters('kubeEnvironmentId')]"
      }
   }
}

تغيير سلوك التحجيم الافتراضي

تُدير Logic Apps المُمكّنة في Azure Arc تلقائياً تحجيم logic apps استناداً إلى عدد المهام في قائمة انتظار التخزين الخلفية. ومع ذلك، يمكنك تغيير سلوك التحجيم الافتراضي.

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

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

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

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

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

تغيير حد التحجيم

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

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

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

تغيير الحد الأقصى لمعدل النقل

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

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

Azure CLI

لإنشاء logic app جديد، شغل الأمر، 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

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

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

  2. في قائمة logic app، ضمن "Settings"، حدد "Configuration".

  3. في جزء "Configuration"، ضمن "Application settings"، إما أضف إعداد تطبيق جديد أو حرر القيمة الموجودة، إذا أُضيفت بالفعل.

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

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

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

تغيير الحد الأدنى لمعدل النقل

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

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

Azure CLI

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

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

لإنشاء logic app جديد، شغل الأمر، 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

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

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

  2. في قائمة logic app، ضمن "Settings"، حدد "Scale out".

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

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

استكشاف الأخطاء وإصلاحها

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

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

للوصول إلى إعدادات التطبيق، شغل الأمر، 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

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

لعرض نشاط سير عمل في logic app، اتبع الخطوات التالية:

  1. في مدخل Microsoft Azure، ابحث عن ogic app الموزع وافتحه.

  2. في قائمة logic app، حدد "Workflows"، ثم حدد سير العمل الخاص بك.

  3. في قائمة "workflow"، حدد "Monitor".

اجمع السجلات

للحصول على بيانات مسجلة بشأن logic app، مكّن Application Insights على logic app الخاص بك إذا لم يكن مُمكّناً بالفعل.

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