استدعاء Azure Functions من مهام سير العمل في Azure Logic Apps
ينطبق على: Azure Logic Apps (الاستهلاك + قياسي)
لتشغيل التعليمات البرمجية التي تنفذ مهمة محددة في سير عمل تطبيق المنطق الخاص بك، لا يتعين عليك إنشاء تطبيق أو بنية أساسية كاملة. بدلا من ذلك، يمكنك إنشاء دالة Azure واستدعائها. توفر Azure Functions حوسبة بلا خادم في السحابة والقدرة على تنفيذ المهام التالية:
- قم بتوسيع سلوك سير العمل الخاص بك عن طريق تشغيل الوظائف التي تم إنشاؤها باستخدام Node.js أو C#.
- إجراء العمليات الحسابية في سير العمل الخاص بك.
- تطبيق حقول تنسيق أو حساب متقدمة في سير العمل.
يوضح هذا الدليل الإرشادي كيفية استدعاء دالة Azure موجودة من سير العمل Consumption أو Standard. لتشغيل التعليمات البرمجية دون استخدام Azure Functions، راجع الوثائق التالية:
- تشغيل قصاصات التعليمات البرمجية في مهام سير العمل
- إنشاء التعليمات البرمجية ل .NET Framework وتشغيلها من مهام سير العمل القياسية
القيود
تدعم مهام سير عمل الاستهلاك فقط مصادقة استدعاءات وظائف Azure باستخدام هوية مدارة مع مصادقة Microsoft Entra. مهام سير العمل القياسية غير مدعومة حاليا في القسم حول كيفية تمكين المصادقة لمكالمات الوظائف.
لا تدعم Azure Logic Apps استخدام وظائف Azure مع تمكين فتحات التوزيع. على الرغم من أن هذا السيناريو قد يعمل في بعض الأحيان، إلا أن هذا السلوك غير متوقع وقد يؤدي إلى مشاكل في التخويل عندما يحاول سير العمل استدعاء دالة Azure.
المتطلبات الأساسية
حساب Azure والاشتراك. إذا لم يكن لديك اشتراك، فيجب التسجيل للحصول على حساب Azure مجاني.
مورد تطبيق دالة Azure، الذي يحتوي على دالة واحدة أو أكثر من وظائف Azure.
يجب أن يستخدم مورد تطبيق الوظائف ومورد تطبيق المنطق نفس اشتراك Azure.
يجب أن يستخدم مورد تطبيق الدالة إما .NET أو Node.js كمكدس وقت التشغيل.
عند إضافة دالة جديدة إلى تطبيق الوظائف، يمكنك تحديد إما C# أو JavaScript.
دالة Azure التي تريد الاتصال بها. يمكنك إنشاء هذه الدالة باستخدام الأدوات التالية:
يجب أن تستخدم الدالة قالب مشغل HTTP.
يمكن أن يقبل قالب مشغل HTTP المحتوى الذي يحتوي على
application/json
نوع من سير عمل تطبيق المنطق الخاص بك. عند إضافة دالة إلى سير العمل الخاص بك، يعرض المصمم الوظائف المخصصة التي تم إنشاؤها من هذا القالب ضمن اشتراك Azure الخاص بك.يجب أن تتضمن التعليمات البرمجية للدالة الاستجابة والحمولة التي تريد إرجاعها إلى سير العمل بعد اكتمال الدالة.
context
يشير الكائن إلى الرسالة التي يرسلها سير العمل الخاص بك من خلال معلمة إجراء Azure Functions المسماة نص الطلب لاحقا في هذا الدليل.يستخدم هذا الدليل دالة العينة التالية، والتي تسمى FabrikamAzureFunction:
module.exports = function (context, data) { var input = data; // Function processing logic // Function response for later use context.res = { body: { content:"Thank you for your feedback: " + input } }; context.done(); }
للوصول إلى خصائص العنصر
context
من داخل الدالة الخاصة بك، استخدم بناء الجملة التالي:context.body.<property-name>
على سبيل المثال، للإشارة إلى الخاصية
content
context
في الكائن، استخدم بناء الجملة التالي:context.body.content
تتضمن هذه التعليمة البرمجية أيضا متغيرا
input
، والذي يخزن القيمة من المعلمةdata
بحيث يمكن للدالة تنفيذ عمليات على تلك القيمة. ضمن وظائف JavaScript،data
المتغير هو أيضا اختصار لcontext.body
.إشعار
body
تنطبق الخاصية هنا علىcontext
الكائن وهي ليست نفس الرمز المميز للنص الأساسي في إخراج الإجراء، والذي قد تمرره أيضا إلى الدالة الخاصة بك.لا يمكن لوظيفتك استخدام التوجيهات المخصصة إلا إذا قمت بتعريف تعريف OpenAPI.
عندما يكون لديك تعريف OpenAPI للدالة الخاصة بك، يمنحك مصمم سير العمل تجربة أكثر ثراء عند العمل مع معلمات الدالة. قبل أن يتمكن سير العمل من العثور على الوظائف التي تحتوي على تعريفات OpenAPI والوصول إليها، قم بإعداد تطبيق الوظائف باتباع هذه الخطوات.
سير عمل Consumption أو Standard logic app الذي يبدأ بأي مشغل.
تستخدم الأمثلة في هذا الدليل مشغل Office 365 Outlook المسمى عند وصول بريد إلكتروني جديد.
لإنشاء دالة Azure التي تستدعي سير عمل آخر واستدعائها، تأكد من أن سير العمل الثانوي يبدأ بمشغل يوفر نقطة نهاية قابلة للاستدعاء.
على سبيل المثال، يمكنك بدء سير العمل باستخدام مشغل HTTP أو الطلب العام، أو يمكنك استخدام مشغل يستند إلى الخدمة، مثل Azure Queues أو Event Grid. داخل الدالة الخاصة بك، أرسل طلب HTTP POST إلى عنوان URL للمشغل وقم بتضمين الحمولة التي تريد أن يعالجها سير العمل الثانوي. لمزيد من المعلومات، راجع استدعاء مهام سير عمل تطبيق المنطق أو تشغيلها أو تداخلها.
تلميحات للعمل مع وظائف Azure
البحث عن وظائف باستخدام تعريفات OpenAPI
لإعداد تطبيق الوظائف بحيث يمكن لسير العمل العثور على الدالات التي تحتوي على تعريفات OpenAPI واستخدامها، اتبع الخطوات التالية:
في مدخل Microsoft Azure، افتح تطبيق الوظائف. تأكد من تشغيل تطبيق الوظائف بنشاط.
في تطبيق الوظائف، قم بإعداد مشاركة الموارد عبر المنشأ (CORS) بحيث يسمح بجميع الأصول باتباع الخطوات التالية:
قيم خصائص الوصول داخل طلبات HTTP
يمكن للوظائف المستندة إلى خطاف الويب قبول طلبات HTTP كمدخلات وتمرير هذه الطلبات إلى وظائف أخرى. على سبيل المثال، على الرغم من أن Azure Logic Apps لديها وظائف تحول قيم DateTime، فإن نموذج دالة JavaScript الأساسي هذا يوضح كيف يمكنك الوصول إلى خاصية داخل كائن طلب HTTP الذي تم تمريره إلى الدالة وتنفيذ العمليات على قيمة الخاصية هذه. للوصول إلى الخصائص داخل الكائنات، يستخدم هذا المثال عامل التشغيل dot (.):
function convertToDateString(request, response){
var data = request.body;
response = {
body: data.date.ToDateString();
}
}
إليك ما يحدث داخل هذه الدالة:
تنشئ الدالة متغيرا
data
، ثم تعينbody
الكائن، الموجود داخلrequest
الكائن، إلى المتغير . تستخدم الدالة عامل التشغيل dot (.) للإشارةbody
إلى الكائن داخلrequest
الكائن:var data = request.body;
يمكن للدالة الآن الوصول إلى الخاصية من خلال
data
المتغير، وتحويل قيمة الخاصية من نوع DateTime إلى نوع DateString عن طريق استدعاء الدالةToDateString()
.date
ترجع الدالة أيضًا النتيجة من خلال الخاصيةbody
في استجابة الدالة:body: data.date.ToDateString();
بعد إنشاء دالتك في Azure، اتبع الخطوات لإضافة دالة Azure إلى سير العمل الخاص بك.
تمرير معلمات URI إلى دالة
إذا كان عليك تمرير معلمة URI إلى الدالة الخاصة بك، يمكنك استخدام معلمات الاستعلام في عنوان URL لنقطة نهاية الدالة.
مع فتح مصمم سير العمل لتطبيق المنطق الخاص بك، وفتح جزء معلومات الدالة، من قائمة المعلمات المتقدمة، حدد الاستعلامات.
يظهر جدول حيث يمكنك إدخال المعلمة كأزواج قيم المفاتيح.
أدخل زوج قيمة المفتاح للمعلمة الخاصة بك، على سبيل المثال:
إضافة دالة إلى سير العمل الخاص بك (الاستهلاك + مهام سير العمل القياسية)
لاستدعاء دالة Azure من سير العمل الخاص بك، يمكنك إضافة تلك الدالات مثل أي إجراء آخر في المصمم.
في مدخل Microsoft Azure، افتح سير عمل تطبيق Consumption المنطقي في المصمم.
في المصمم، اتبع هذه الخطوات العامة لإضافة إجراء Azure Functions المسمى Choose an Azure function.
في جزء إضافة إجراء ، اتبع الخطوات التالية:
من قائمة تطبيقات الوظائف، حدد تطبيق الوظائف، وحدد الدالة، ثم حدد إضافة إجراء، على سبيل المثال:
بعد ظهور مربع معلومات الدالة، اتبع الخطوات التالية:
بالنسبة إلى نص الطلب، قم بتوفير إدخال الدالة، والذي يجب أن يستخدم التنسيق لكائن JavaScript Object Notation (JSON)، على سبيل المثال:
{"context": <selected-input> }
هذا الإدخال هو حمولة عنصر السياق أو الرسالة التي يرسلها سير العمل إلى الدالة الخاصة بك.
لتحديد الرموز المميزة التي تمثل المخرجات من الخطوات السابقة، حدد داخل مربع نص الطلب ، ثم حدد الخيار لفتح قائمة المحتوى الديناميكي (أيقونة البرق).
لإنشاء تعبير، حدد داخل مربع نص الطلب ، ثم حدد الخيار لفتح محرر التعبير (أيقونة الصيغة).
يحدد المثال التالي كائن JSON مع السمة
content
ورمز مميز يمثل الإخراج من مشغل البريد الإلكتروني كقيمة نص الطلب :هنا، لا يتم تحويل عنصر السياق كسلسلة، لذلك تتم إضافة محتوى العنصر مباشرة إلى حمولة JSON. إليك المثال الكامل:
إذا قمت بتوفير كائن سياق غير رمز JSON المميز الذي يمرر سلسلة أو كائن JSON أو صفيف JSON، فستحصل على خطأ. ومع ذلك، يمكنك تحويل كائن السياق كسلسلة عن طريق إحاطة الرمز المميز بعلامات اقتباس ("")، على سبيل المثال، إذا كنت تريد استخدام الرمز المميز للوقت المستلم:
لتحديد تفاصيل أخرى مثل أسلوب الاستخدام أو طلب الرؤوس أو معلمات الاستعلام أو المصادقة، افتح قائمة المعلمات المتقدمة، وحدد المعلمات التي تريدها. للمصادقة، تختلف خياراتك استنادًا إلى الدالة المحددة. لمزيد من المعلومات، راجع تمكين المصادقة للوظائف.
تمكين المصادقة لمكالمات دالة Azure (مهام سير عمل الاستهلاك فقط)
يمكن لسير عمل Consumption استخدام هوية مدارة لمصادقة استدعاء دالة Azure والوصول إلى الموارد المحمية بواسطة معرف Microsoft Entra. يمكن للهوية المدارة مصادقة الوصول دون الحاجة إلى تسجيل الدخول وتوفير بيانات الاعتماد أو الأسرار. يدير Azure هذه الهوية نيابة عنك ويساعد على تأمين بيانات الاعتماد الخاصة بك لأنه ليس عليك توفير بيانات سرية أو تدويرها. يمكنك إعداد الهوية المعينة من قبل النظام أو هوية تم إنشاؤها يدويا وتعيينها من قبل المستخدم على مستوى مورد تطبيق المنطق. يمكن لدالة Azure التي يتم استدعاؤها من سير العمل الخاص بك استخدام نفس الهوية المدارة للمصادقة.
إشعار
تدعم مهام سير عمل الاستهلاك فقط المصادقة لاستدعاء دالة Azure باستخدام هوية مدارة ومصادقة Microsoft Entra. لا تتضمن مهام سير العمل القياسية حاليا هذا الدعم عند استخدام الإجراء لاستدعاء دالة Azure.
لمزيد من المعلومات، راجع الوثائق التالية:
لإعداد تطبيق الوظائف ووظيفتك حتى يتمكنوا من استخدام الهوية المدارة لتطبيق منطق الاستهلاك، اتبع هذه الخطوات عالية المستوى:
ابحث عن القيم المطلوبة لإعداد مصادقة Microsoft Entra.
إعداد الدالة للمصادقة المجهولة (مهام سير عمل الاستهلاك فقط)
لكي تستخدم وظيفتك الهوية المدارة لتطبيق منطق الاستهلاك، يجب عليك تعيين مستوى مصادقة وظيفتك إلى anonymous
. وإلا، فإن سير العمل الخاص بك يطرح خطأ BadRequest .
في مدخل Microsoft Azure، ابحث عن تطبيق الوظائف وحدده.
تستخدم الخطوات التالية مثالاً لتطبيق دالة يسمى FabrikamFunctionApp.
في قائمة موارد تطبيق الوظائف، ضمن Development tools، حدد Advanced Tools>Go.
بعد فتح صفحة Kudu Plus، على شريط عنوان موقع Kudu على الويب، من قائمة وحدة تحكم تتبع الأخطاء، حدد CMD.
بعد ظهور الصفحة التالية، من قائمة المجلدات، حدد site>wwwroot>your-function.
تستخدم الخطوات التالية دالة مثال باسم FabrikamAzureFunction.
افتح ملف function.json للتحرير.
في عنصر الروابط، تحقق مما إذا كانت الخاصية authLevel موجودة. إذا كانت الخاصية موجودة، فقم بتعيين قيمة الخاصية إلى
anonymous
. وإلا، أضف هذه الخاصية، ثم قم بتعيين القيمة.عند الانتهاء، احفظ إعداداتك. تابع إلى القسم التالي.
ابحث عن القيم المطلوبة لإعداد مصادقة Microsoft Entra (مهام سير عمل الاستهلاك فقط)
قبل أن تتمكن من إعداد تطبيق الوظائف لاستخدام الهوية المدارة ومصادقة Microsoft Entra، تحتاج إلى البحث عن القيم التالية وحفظها باتباع الخطوات الواردة في هذا القسم.
ابحث عن معرف المستأجر لمستأجر Microsoft Entra.
ابحث عن معرف الكائن لهويتك المدارة.
البحث عن معرف المستأجر لمستأجر Microsoft Entra
إما تشغيل أمر PowerShell المسمى Get-AzureAccount، أو في مدخل Microsoft Azure، اتبع الخطوات التالية:
في مدخل Microsoft Azure، افتح مستأجر Microsoft Entra.
يستخدم هذا الدليل Fabrikam كمستأجر مثال.
في قائمة المستأجر، حدد Overview.
انسخ معرف المستأجر واحفظه لاستخدامه لاحقًا، على سبيل المثال:
البحث عن معرف الكائن للهوية المدارة
بعد تمكين الهوية المدارة لمورد تطبيق منطق الاستهلاك، ابحث عن الكائن لهويتك المدارة. ستستخدم هذا المعرف للعثور على تطبيق Enterprise المقترن في مستأجر Microsoft Entra.
في قائمة logic app، ضمن Settings، حدد Identity، ثم حدد إما System assigned أو User assigned.
ابحث عن معرف التطبيق لتطبيق Azure Enterprise المقترن بهويتك المدارة
عند تمكين هوية مدارة على مورد تطبيق المنطق الخاص بك، يقوم Azure تلقائيا بإنشاء تطبيق Azure Enterprise مقترن يحمل نفس الاسم. تحتاج الآن إلى العثور على تطبيق المؤسسة المقترن ونسخ معرف التطبيق الخاص به. لاحقا، يمكنك استخدام معرف التطبيق هذا لإضافة موفر هوية لتطبيق الوظائف الخاص بك عن طريق إنشاء تسجيل تطبيق.
في مدخل Microsoft Azure، ابحث عن مستأجر Microsoft Entra وافتحه.
في قائمة المستأجر، ضمن Manage، حدد Enterprise applications.
في صفحة All applications ، في مربع البحث، أدخل معرف الكائن للهوية المدارة. من النتائج، ابحث عن تطبيق المؤسسة المطابق، وانسخ معرف التطبيق:
الآن، استخدم معرف التطبيق المنسخ لإضافة موفر هوية إلى تطبيق الوظائف.
إضافة موفر هوية لتطبيق الوظائف (مهام سير عمل الاستهلاك فقط)
الآن بعد أن أصبح لديك معرف المستأجر ومعرف التطبيق، يمكنك إعداد تطبيق الوظائف لاستخدام مصادقة Microsoft Entra عن طريق إضافة موفر هوية وإنشاء تسجيل تطبيق.
في مدخل Microsoft Azure، افتح تطبيق الوظائف.
في قائمة تطبيق الوظائف، ضمن الإعدادات، حدد المصادقة، ثم حدد إضافة موفر هوية.
في جزء Add an identity provider، ضمن Basics، من قائمة Identity provider، حدد Microsoft.
ضمن App registration، في App registration type، حدد Provide the details of an existing app registration، وأدخل القيم التي قمت بحفظها مسبقًا.
الخاصية المطلوب قيمة الوصف معرف التطبيق (العميل) نعم <معرف التطبيق> المعرف الفريد الذي يجب استخدامه لتسجيل التطبيق هذا. على سبيل المثال، استخدم معرف التطبيق الذي نسخته لتطبيق المؤسسة المقترن بهويتك المدارة. سر العميل اختياري، ولكن يوصى به <سر العميل> القيمة السرية التي يستخدمها التطبيق لإثبات هويته عند طلب رمز مميز. يتم إنشاء سر العميل وتخزينه في تكوين التطبيق الخاص بك كإعداد تطبيق ملتصق بالفتحة يسمى MICROSOFT_PROVIDER_AUTHENTICATION_SECRET.
- تأكد من تدوير الأسرار بانتظام وتخزينها بشكل آمن. على سبيل المثال، قم بإدارة أسرارك في Azure Key Vault حيث يمكنك استخدام هوية مدارة لاسترداد المفتاح دون تعريض القيمة لمستخدم غير مصرح به. يمكنك تحديث هذا الإعداد لاستخدام مراجع Key Vault.
- إذا قمت بتوفير قيمة سرية للعميل، فإن عمليات تسجيل الدخول تستخدم التدفق المختلط، وإرجاع كل من الرموز المميزة للوصول والتحديث.
- إذا لم توفر سر العميل، فإن عمليات تسجيل الدخول تستخدم تدفق المنح الضمني OAuth 2.0. يقوم هذا الأسلوب بإرجاع رمز مميز للمعرف أو رمز مميز للوصول فقط. يتم إرسال وتخزين هذه الرموز المميزة بواسطة الموفر في مخزن الرموز المميزة EasyAuth.
هام: بسبب المخاطر الأمنية، لم يعد تدفق المنح الضمني أسلوب مصادقة مناسبا. بدلا من ذلك، استخدم إما تدفق رمز التخويل مع مفتاح الإثبات ل Exchange التعليمات البرمجية (PKCE) أو رموز تخويل التطبيق أحادي الصفحة (SPA).عنوان URL المصدر لا <authentication-endpoint-URL>/<Microsoft-Entra-tenant-ID>/v2.0 يقوم عنوان URL هذا بإعادة توجيه المستخدمين إلى مستأجر Microsoft Entra الصحيح وتنزيل بيانات التعريف المناسبة لتحديد مفاتيح توقيع الرمز المميز المناسبة وقيمة مطالبة مصدر الرمز المميز. بالنسبة للتطبيقات التي تستخدم Azure AD v1، احذف /v2.0 من عنوان URL.
لهذا السيناريو، استخدم عنوان URL التالي:https://sts.windows.net/
<Microsoft-Entra-tenant-ID>جمهور الرمز المميز المسموح به لا <application-ID-URI> معرف التطبيق URI (معرف المورد) لتطبيق الوظائف. بالنسبة لتطبيق السحابة أو الخادم حيث تريد السماح بالرموز المميزة للمصادقة من تطبيق ويب، أضف معرف التطبيق URI لتطبيق الويب. دائمًا ما يعتبر معرف العميل المكون ضمنيًا كجمهور مسموح به.
بالنسبة لهذا السيناريو، تكون القيمة هيhttps://management.azure.com
. لاحقًا، يمكنك استخدام نفس URI في خاصية Audience عند إعداد إجراء الدالة في سير العمل الخاص بك لاستخدام الهوية المدارة.
هام: يجب أن يتطابق معرف التطبيق URI (معرف المورد) تماما مع القيمة التي يتوقعها معرف Microsoft Entra، بما في ذلك أي شرطة مائلة لاحقة مطلوبة.عند هذه النقطة، يبدو الإصدار الخاص بك مشابهًا لهذا المثال:
إذا كنت تقوم بإعداد تطبيق الوظائف الخاص بك مع موفر هوية للمرة الأولى، يظهر أيضا قسم إعدادات مصادقة App Service. تحدد هذه الخيارات كيفية استجابة تطبيق الوظائف للطلبات غير المصادق عليها. يعيد التحديد الافتراضي توجيه جميع الطلبات لتسجيل الدخول باستخدام موفر الهوية الجديد. يمكنك تخصيص هذا السلوك الآن أو ضبط هذه الإعدادات لاحقًا من صفحة المصادقة الرئيسية عن طريق تحديد تحرير بجوار إعدادات المصادقة. لمعرفة المزيد حول هذه الخيارات، راجع تدفق المصادقة - المصادقة والتخويل في Azure App Service وAzure Functions.
وإلا، يمكنك متابعة الخطوة التالية.
لإنهاء إنشاء تسجيل التطبيق، حدد إضافة.
عند الانتهاء، تسرد صفحة المصادقة الآن موفر الهوية ومعرف تطبيق تسجيل التطبيق (العميل). يمكن لتطبيق الوظائف الآن استخدام تسجيل التطبيق هذا للمصادقة.
انسخ معرف التطبيق (العميل) لتسجيل التطبيق لاستخدامه لاحقا في خاصية Audience لإجراء Azure Functions لسير العمل الخاص بك.
ارجع إلى المصمم واتبع الخطوات لمصادقة الوصول باستخدام الهوية المدارة باستخدام إجراء Azure Functions المضمن.