إنشاء وتوزيع مهام سير عمل 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.
لمعرفة مزيد من المعلومات، راجع الوثائق التالية:
- ما هي Logic Apps التي تمكنها Azure Arc؟
- مستأجر واحد مقابل بيئة خدمة متعددة المستأجرين والتكامل
- نظرة عامة على Azure Arc
- نظرة عامة على Azure Kubernetes Service (AKS)
- ما هو Kubernetes الذي يدعم Azure Arc؟
- مواقع مخصصة على Kubernetes المُمكّنة في Azure Arc
- App Service وFunctions وLogic Apps على Azure Arc (معاينة)
- إعداد مجموعة Kubernetes الممكّنة في Azure Arc لتشغيل App Service وFunctions وLogic Apps (معاينة)
المتطلبات الأساسية
يصف هذا القسم المتطلبات الأساسية الشائعة عبر جميع النُهج والأدوات التي يمكنك استخدامها لإنشاء مهام سير عمل التطبيق المنطقي وتوزيعها. تظهر المتطلبات الأساسية الخاصة بالأدوات بجانب الخطوات المقابلة لها.
حساب 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، اتبع الخطوات التالية:
إنشاء تسجيل تطبيق باستخدام الأمر
az ad sp create
.لمراجعة جميع التفاصيل، قم بتشغيل الأمر
az ad sp show
.من إخراج كلا الأمرين، ابحث عن معرّف العميل ومعرّف العنصر ومعرّف المستأجر والقيم السرية للعميل واحفظها، احتفظ بها لاستخدامها لاحقاً.
لإنشاء تسجيل تطبيق Microsoft Entra باستخدام مدخل Microsoft Azure، اتبع الخطوات التالية:
إنشاء تسجيل تطبيق Microsoft Entra جديد باستخدام مدخل Microsoft Azure.
بعد انتهاء الإنشاء، ابحث عن تسجيل التطبيق الجديد في المدخل.
في قائمة التسجيل، حدد "Overview"، واحفظ معرّف العميل ومعرّف المستأجر والقيم السرية للعميل.
للعثور على معرّف العنصر، بجوار حقل "Managed application in local directory"، حدد اسم تسجيل التطبيق. من عرض الخصائص، انسخ معرّف العنصر.
إنشاء logic apps وتوزيعها
استناداً إلى ما إذا كنت تريد استخدام Azure CLI أو Visual Studio Code أو مدخل Microsoft Azure، حدد علامة التبويب المطابقة لمراجعة المتطلبات الأساسية والخطوات المحددة.
قبل أن تبدأ، يجب أن يكون لديك العناصر التالية:
تم تثبيت أحدث ملحق Azure CLI على الكمبيوتر المحلي الخاص بك.
إذا لم يكن لديك هذه الإضافة، فراجع دليل التثبيت لنظام التشغيل أو النظام الأساسي لديك.
إذا لم تكن متأكداً من أن لديك أحدث إصدار، فاتبع الخطوات للتحقق من البيئة وإصدار CLI.
ملحق معاينة Azure Logic Apps (القياسي) لـ Azure CLI.
رغم توفر Azure Logic Apps أحادي المستأجر بشكل عام، فإن ملحق Azure Logic Apps لا يزال قيد المعاينة.
مجموعة موارد Azure من خلالها تُنشئ logic app.
إذا لم يكن لديك مجموعة الموارد هذه، فاتبع الخطوات لإنشاء مجموعة الموارد.
حساب تخزين Azure لاستخدامه مع تطبيقك المنطقي للبيانات وتشغيل الاحتفاظ بالمحفوظات.
إذا لم يكن لديك حساب التخزين هذا، يمكنك إنشاء هذا الحساب عند إنشاءlogic app الخاص بك، أو يمكنك اتباع الخطوات لإنشاء حساب تخزين.
تحقق من البيئة وإصدار CLI
سجل الدخول إلى مدخل Azure. تحقق من أن اشتراكك نشط عن طريق تشغيل الأمر التالي:
az login
تحقق من إصدار من Azure CLI في محطة طرفية أو نافذة أمر بواسطة تشغيل الأمر التالي:
az --version
للحصول على أحدث إصدار، راجع ملاحظات الإصدار الأخيرة .
في حال عدم امتلاك أحدث إصدار، فيمكن تحديث التثبيت باتباع دليل تثبيت نظام التشغيل أو النظام الأساسي لديك.
قم بتثبيت ملحق 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 أو المسارات التلقائية للتوزيع، فاتبع هذه الخطوات.
تكوين إعدادات الاتصال والتطبيق في مشروعك
في ملف 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')" }
في ملف 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
لهذه المهمة، استخدم معرّف العميل المحفوظ مسبقاً كمعرّف التطبيق.
في مدخل Microsoft Azure، ابحث عن تطبيق المنطق الخاص بك وافتحه. في قائمة logic app الخاص بك، ضمن "Workflows"، حدد "Connections"، والتي تسرد جميع الاتصالات في مهام سير عملlogic app.
ضمن "API Connections"، حدد اتصالاً،
office365
الموجود في هذا المثال.في قائمة "Connections"، ضمن "Settings"، حدد "Access policies>Add".
في جزء "Add access policy"، في مربع البحث، ابحث عن معرّف العميل المحفوظ مسبقاً وحدده.
عندما تنتهي، حدد إضافة.
كرر هذه الخطوات لكل اتصال مستضاف من Azure في logic app الخاص بك.
التوزيع التلقائي لـ DevOps
لإنشاء وتوزيع logic apps المُمكّنة في Azure Arc، يمكنك استخدام المسارات والعمليات نفسها مثل logic apps المستندة إلى المستأجر الواحد. للتشغيل التلقائي لعمليات توزيع البنية الأساسية باستخدام المسارات لـ DevOps، نفذ التغييرات التالية على مستوى البنية الأساسية لكل من عمليات التوزيع غير الحاوية والحاوية.
التوزيع القياسي (غير الحاوية)
إذا كنت تستخدم توزيع zip لتوزيع logic app، فلن تحتاج إلى إعداد سجل Docker لاستضافة نسخ الحاوية. على الرغم من أن logic apps على Kubernetes تعمل تقنياً على الحاويات، فإن Logic Apps المُمكّنة في Azure Arc تدير هذه الحاويات. لهذا السيناريو، أكمل المهام التالية عند إعداد البنية الأساسية:
- أعلم موفر المورد بأنك تُنشئ logic app على Kubernetes.
- قم بتضمين خطة App Service مع توزيعك. لمزيد من المعلومات، راجع تضمين خطة App Service مع التوزيع.
في قالب 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 المقترنة، المنسقة على النحو التالي:
|
سلسلة اتصال التخزين | 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 المقترنة، المنسقة على النحو التالي:
|
سلسلة اتصال التخزين | 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
أو حررها باتباع الخطوات التالية:
في مدخل Microsoft Azure، ابحث عن logic app المستند إلى المستأجر الواحد وافتحه.
في قائمة logic app، ضمن "Settings"، حدد "Configuration".
في جزء "Configuration"، ضمن "Application settings"، إما أضف إعداد تطبيق جديد أو حرر القيمة الموجودة، إذا أُضيفت بالفعل.
حدد " New application setting"، وأضف الإعداد
K8SE_APP_MAX_INSTANCE_COUNT
بالقيمة القصوى التي تريدها.تحرير القيمة الموجودة للإعداد
K8SE_APP_MAX_INSTANCE_COUNT
.
عند الانتهاء، احفظ التغييرات.
تغيير الحد الأدنى لمعدل النقل
في مورد 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 باتباع الخطوات التالية:
في مدخل Microsoft Azure، ابحث عن logic app المستند إلى المستأجر الواحد وافتحه.
في قائمة logic app، ضمن "Settings"، حدد "Scale out".
في جزء "Scale out"، اسحب شريط تمرير الحد الأدنى للمثيلات إلى القيمة التي تريدها.
عند الانتهاء، احفظ التغييرات.
استكشاف الأخطاء وإصلاحها
للحصول على مزيد من المعلومات بشأن 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، اتبع الخطوات التالية:
في مدخل Microsoft Azure، ابحث عن ogic app الموزع وافتحه.
في قائمة logic app، حدد "Workflows"، ثم حدد سير العمل الخاص بك.
في قائمة "workflow"، حدد "Monitor".
اجمع السجلات
للحصول على بيانات مسجلة بشأن logic app، مكّن Application Insights على logic app الخاص بك إذا لم يكن مُمكّناً بالفعل.