موصلات مخصصة في Azure Logic Apps

ينطبق على: Azure Logic Apps (الاستهلاك + قياسي)

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

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

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

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

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

تطبيقات منطق الاستهلاك

في Azure Logic Apps متعدد المستأجرين، يمكنك إنشاء موصلات مخصصة من واجهات برمجة التطبيقات المستندة إلى Swagger أو SOAP حتى حدود معينة للاستخدام في مهام سير عمل تطبيق منطق الاستهلاك. توفر وثائق الموصلات المزيد من المعلومات حول كيفية إنشاء موصلات مخصصة لتطبيقات منطق الاستهلاك، بما في ذلك البرامج التعليمية الأساسية والمتقدمة الكاملة. توفر القائمة التالية أيضاً ارتباطات مباشرة إلى معلومات حول الموصلات المخصصة لتطبيقات منطق الاستهلاك:

تطبيقات المنطق القياسي

في Azure Logic Apps أحادي المستأجر، يعمل وقت تشغيل Azure Logic Apps المُعاد تصميمه على تشغيل مهام سير عمل تطبيق المنطق القياسي. يختلف وقت التشغيل هذا عن وقت تشغيل Azure Logic Apps متعدد المستأجرين الذي يشغّل مهام سير عمل تطبيق منطق الاستهلاك. يستخدم وقت تشغيل المستأجر الأحادي نموذج قابلية توسعة Azure Functions، الذي يمنحك إمكانية رئيسية لإنشاء موصلات مُضمّنة لأي شخص لاستخدامها في مهام سير العمل القياسية. في معظم الحالات، يوفر الإصدار المُضمّن أداء وإمكانات وتسعيراً أفضل وما إلى ذلك.

عند إصدار Azure Logic Apps أحادي المستأجر رسمياً، تضمنت الموصلات المُضمّنة الجديدة تخزين Azure Blob، ومراكز أحداث Azure، وناقل خدمة Azure، وSQL Server. مع مرور الوقت، تستمر قائمة الموصلات المُضمّنة هذه في النمو. ومع ذلك، إذا كنت بحاجة إلى موصلات غير متوفرة في مهام سير عمل تطبيق المنطق القياسي، يمكنك إنشاء موصلاتك المُضمّنة باستخدام نفس نموذج قابلية التوسعة الذي تستخدمه الموصلات المُضمّنة التي تستند إلى موفر الخدمة في مهام سير العمل القياسية.

الموصلات المضمنة المُستندة إلى موفر الخدمة

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

وعلى النقيض من ذلك، فإن الموصلات المضمنة غيرالمرتبطة بموفر الخدمة السمات التالية:

  • لا يستند إلى نموذج قابلية توسعة Azure Functions.

  • يتم تنفيذه مباشرة كوظيفة ضمن وقت تشغيل Azure Logic Apps، مثل عمليات Schedule، وHTTP، وRequest، وXML.

لا تتوفر أي إمكانية حالياً لإنشاء موصل مُضمّن غير موفّر خدمة أو نوع مهمة جديد يعمل مباشرة في وقت تشغيل Azure Logic Apps. ومع ذلك، يمكنك إنشاء موصلاتك المُضمّنة باستخدام البنية الأساسية لموفّر الخدمة.

يوفر القسم التالي المزيد من المعلومات حول كيفية عمل نموذج قابلية التوسعة للموصلات المُضمّنة المخصصة.

نموذج قابلية توسعة الموصل المُضمّن

استناداً إلى نموذج قابلية توسعة Azure Functions، يحتوي نموذج قابلية توسعة الموصل المُضمّن في Azure Logic Apps أحادي المستأجر على بنية أساسية لموفّر الخدمة يمكنك استخدامها لإنشاء وحزم وتسجيل وتثبيت الموصلات المُضمّنة الخاصة بك كملحقات Azure Functions يمكن لأي شخص استخدامها في مهام سير العمل القياسية الخاصة به. يتضمن هذا النموذج إمكانات مشغّل مُضمّن مخصص تدعم الكشف عن مشغّل أو إجراء Azure Functions كمشغّل موفّر خدمة في الموصل المُضمّن المخصص.

يوضح الرسم التخطيطي التالي عمليات تنفيذ الأسلوب التي يتوقعها مصمم Azure Logic Apps ووقت التشغيل لموصل مُضمّن مخصص مع مشغّل يستند إلى Azure Functions:

مخطط منطقي يوضح البنية الأساسية لموفر الخدمة التي تستند إلى Azure Functions.

توفر الأقسام التالية المزيد من المعلومات حول الواجهات التي يحتاج الموصل إلى تنفيذها.

IServiceOperationsProvider

تتضمن هذه الواجهة الأساليب التي توفر بيان العمليات للموصل المُضمّن المخصص.

  • بيان العمليات

    يتضمن بيان العمليات بيانات تعريف حول العمليات المُنفذة في الموصل المُضمّن المخصص. يستخدم مصمم Azure Logic Apps بيانات التعريف هذه بشكل أساسي لتشغيل تجارب التأليف والمراقبة لعمليات الموصل. على سبيل المثال، يستخدم المصمم بيانات تعريف العملية لفهم معلمات الإدخال التي تتطلبها عملية معينة ولتسهيل إنشاء رموز مميزة لخصائص المخرجات، استناداً إلى مخطط مخرجات العملية.

    يتطلب المصمم الأسلوبين GetService() وGetOperations() ويستخدمهما للاستعلام عن العمليات التي يوفرها الموصل ويعرضها على سطح المصمم. يحدد أسلوب GetService() أيضاً معلمات إدخال الاتصال التي يتطلبها المصمم.

    لمزيد من المعلومات حول هذه الأساليب وتنفيذها، راجع قسم أساليب التنفيذ لاحقاً في هذه المقالة.

  • استدعاءات العملية

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

    • إذا كان المشغّل الخاص بك هو نوع مشغّل يستند إلى Azure Functions، يستخدم وقت التشغيل في Azure Logic Apps الأسلوب GetBindingConnectionInformation() لتوفير معلومات معلمات الاتصال المطلوبة لربط مشغّل Azure Functions.

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

لمزيد من المعلومات حول هذه الأساليب وتنفيذها، راجع قسم أساليب التنفيذ لاحقاً في هذه المقالة.

IServiceOperationsTriggerProvider

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

  • الأسلوب GetFunctionTriggerType() مطلوب لإرجاع السلسلة التي هي نفس معلمة النوع في ربط مشغّل Azure Functions.

  • يحتوي الأسلوب GetFunctionTriggerDefinition() على تنفيذ افتراضي، لذلك لا تحتاج إلى تنفيذ هذا الأسلوب بشكل صَريح. ومع ذلك، إذا كنت ترغب في تحديث السلوك الافتراضي للمشغّل، مثل توفير معلمات إضافية لا يعرضها المُصمم، يُمكنك تنفيذ هذا الأسلوب وتجاوز السلوك الافتراضي.

أساليب التنفيذ

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

GetService()

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

public ServiceOperationApi GetService()
{
   return this.{custom-service-name-apis}.ServiceOperationServiceApi();
}

لمزيد من المعلومات، راجع عينة CosmosDbServiceOperationProvider.cs.

GetOperations()

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

public IEnumerable<ServiceOperation> GetOperations(bool expandManifest)
{
   return expandManifest ? serviceOperationsList : GetApiOperations();
}

لمزيد من المعلومات، راجع عينة CosmosDbServiceOperationProvider.cs.

GetBindingConnectionInformation()

إذا كنت ترغب في استخدام نوع المشغّل المستند إلى Azure Functions، يوفر هذا الأسلوب معلومات معلمات الاتصال المطلوبة لربط مشغّل Azure Functions.

public string GetBindingConnectionInformation(string operationId, InsensitiveDictionary<JToken> connectionParameters)
{
   return ServiceOperationsProviderUtilities
      .GetRequiredParameterValue(
         serviceId: ServiceId,
         operationId: operationID,
         parameterName: "connectionString",
         parameters: connectionParameters)?
      .ToValue<string>();
}

لمزيد من المعلومات، راجع عينة CosmosDbServiceOperationProvider.cs.

InvokeOperation()

إذا كان الموصل المُضمّن المخصص يحتوي على مشغّل فقط، فلن تحتاج إلى تنفيذ هذا الأسلوب. ومع ذلك، إذا كان الموصل يحتوي على إجراءات لتنفيذها، يجب عليك تنفيذ أسلوب InvokeOperation() الذي يتم استدعاؤه لكل إجراء في الموصل الذي يتم تشغيله أثناء تنفيذ سير العمل. يمكنك استخدام أي عميل، مثل FTPClient، وHTTPClient وما إلى ذلك، كما تتطلب إجراءات الموصل. يستخدم هذا المثال HTTPClient.

public Task<ServiceOperationResponse> InvokeOperation(string operationId, InsensitiveDictionary<JToken> connectionParameters, ServiceOperationRequest serviceOperationRequest)
{
   using (var client = new HttpClient())
   {
      response = client.SendAsync(httpRequestMessage).ConfigureAwait(false).ToJObject();
   }
   return new ServiceOperationResponse(body: response);
}

لمزيد من المعلومات، راجع عينة CosmosDbServiceOperationProvider.cs.

GetFunctionTriggerType()

لاستخدام مُشغّل يستند إلى Azure Functions كمشغّل في الموصل الخاص بك، يَجب عليك إرجاع السلسلة التي هي نفس معلمة النوع في ربط مشغّل Azure Functions.

يرجع المثال التالي السلسلة لمشغّل Azure Cosmos DB المُضمّن غير التقليدي، "type": "cosmosDBTrigger":

public string GetFunctionTriggerType()
{
   return "CosmosDBTrigger";
}

لمزيد من المعلومات، راجع عينة CosmosDbServiceOperationProvider.cs.

GetFunctionTriggerDefinition()

يَحتوي هذا الأسلوب على تنفيذ افتراضي، لذلك لا تحتاج إلى تنفيذ هذا الأسلوب بشكل صريح. ومع ذلك، إذا كنت ترغب في تحديث السلوك الافتراضي للمشغّل، مثل توفير معلمات إضافية لا يعرضها المصمم، يمكنك تنفيذ هذا الأسلوب وتجاوز السلوك الافتراضي.

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

عندما تكون مستعداً لبدء خطوات التنفيذ، تابع إلى المقالة التالية: