وظائف المشغلات ومفاهيم ربط البيانات في Azure
في هذه المقالة، ستتعلم المفاهيم عالية المستوى المحيطة بالمشغلات والارتباطات الخاصة بالوظائف.
تؤدي المشغلات إلى تشغيل وظيفة. يُعرف المشغل كيفية استدعاء وظيفة ويجب أن يكون للوظيفة مشغل واحد بالضبط. تتضمن المُشغّلات بيانات مرتبطة بها، والتي غالباً ما تتوفر في صورة الحمولة الخاصة بالدالة.
الربط إلى وظيفة هو طريقة من الربط بشكل تصريحي لمورد آخر بالوظيفة قد تكون متصلة الارتباطات كارتباطات المدخلاتأو روابط المخرجاتأو كليهما. يتم توفير البيانات من الارتباطات للوظيفة في صورة معلمات.
يمكنك خلط ومطابقة الارتباطات المختلفة لتناسب احتياجاتك. تُعد الروابط أمراً اختيارياً وقد تحتوي الدالة على رابط إدخال/إخراج واحد أو عدة روابط.
وتساعدك المشغلات والارتباطات على تجنب وصول التشفير الثابت إلى خدمات أخرى. تتلقى الوظيفة البيانات (على سبيل المثال، محتوى رسالة قائمة انتظار) في مقاييس الوظيفة. إرسال البيانات (على سبيل المثال، لإنشاء رسالة قائمة انتظار) باستخدام قيمة الإرجاع للوظيفة.
الأخذ بعين الاعتبار الأمثلة التالية كيفية تنفيذ وظائف مختلفة.
سيناريو مثال | المشغِّل | ربط بيانات الإدخال | ربط بيانات الإخراج |
---|---|---|---|
تصل رسالة قائمة الانتظار الجديدة وتقوم بتشغيل دالة للكتابة إلى قائمة انتظار أخرى. | رتل* | بلا | رتل* |
تقرأ الوظيفة المجدولة محتويات Blob Storage وتنشئ مستند Azure Cosmos DB جديدا. | عدّاد الوقت | مخزن البيانات الثنائية الكبيرة | Azure Cosmos DB |
يتم استخدام Event Grid لقراءة صورة من Blob Storage ومستند من Azure Cosmos DB لإرسال بريد إلكتروني. | Event Grid | Blob Storage وAzure Cosmos DB | SendGrid |
يستخدم إخطار على الويب Microsoft Graph لتحديث ورقة Excel. | HTTP | بلا | Microsoft Graph |
* يمثل قوائم انتظار مختلفة
لا يُقصد من هذه الأمثلة أن تكون شاملة، ولكنها مقدمة لتوضيح كيفية استخدام المشغلات والارتباطات معاً.
تعريفات المشغل والربط
التعرف على المشغلات والروابط بشكل مختلف اعتمادًا على لغة التطوير.
اللغة | تُكون المشغلات والروابط بواسطة... |
---|---|
C# مكتبة الفئات | تزيين الأساليب والمعلمات مع سمات C# |
Java | تزيين الأساليب والمعلمات مع التعليقات التوضيحية Java |
JavaScript/PowerShell/Python/TypeScript | تحديث function.json (مخطط) |
بالنسبة للغات التي تعتمد على function.json، يوفر المدخل واجهة مستخدم لإضافة روابط في علامة التبويب تكامل . يمكنك أيضا تحرير الملف مباشرة في المدخل في علامة التبويب Code + test من الدالة الخاصة بك. يتيح لك Visual Studio Code إضافة ربط بسهولة إلى ملف function.json باتباع مجموعة ملائمة من المطالبات.
يعرف نوع المعلمة في .NET و Java نوع بيانات الإدخال. على سبيل المثال، استخدم string
لربط نص مشغل قائمة انتظار وصف بايت للقراءة كثنائي ونوع مخصص لإلغاء التسلسل إلى موضوع. نظرًا لأن وظائف مكتبة فئات .NET ودوال Java لا تعتمد على function.json لتعريفات الربط فلا يمكن إنشاؤها وتحريرها في المدخل. يعتمد تحرير المدخل C# على برنامج نصي C# يستخدم function.js بدلًا من السمات.
لمعرفة المزيد حول كيفية إضافة روابط إلى الوظائف الموجودة، راجع توصيل الدالات بخدمات Azure باستخدام الروابط.
بالنسبة للغات التي تكتب ديناميكيا مثل JavaScript، استخدم dataType
الخاصية في ملف function.js. على سبيل المثال، لقراءة محتوى طلب HTTP بتنسيق ثنائي عين dataType
إلىbinary
:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
خيارات أخرى dataType
يكون stream
و string
.
اتجاه الربط
تحتوي جميع المشغلات والروابط على direction
خاصية في ملف function.json :
- بالنسبة للمشغلات، يكون الاتجاه دائما
in
- تستخدم روابط الإدخال والإخراج
in
وout
- تدعم بعض الارتباطات اتجاه خاص
inout
. إذا كنت تستخدمinout
فإن المحرر المتقدم فقط هو المتوفر عبر علامة التبويب دمج في المدخل.
عند استخدام السمات في مكتبة فئة لتكوين المشغلات والروابط، يتم توفير الاتجاه في منشئ سمة أو الاستدلال من نوع المعلمة.
إضافة روابط البيانات إلى الوظيفة
يمكنك تعين الدالة بخدمات أخرى باستخدام روابط الإدخال أو الإخراج. إضافة ربط البيانات بإضافة تعريفات معينة إلى الدالة الخاصة بك. لمعرفة كيفية إجراء ذلك، راجع إضافة روابط إلى دالة موجودة في Azure Functions.
ارتباطات البيانات المدعومة
يعرض هذا الجدول الروابط المعتمدة في الإصدارات الرئيسية من وقت تشغيل Azure Functions:
نوع | 1.x1 | 2.x وأعلى2 | المشغِّل | الإدخال | الإخراج |
---|---|---|---|---|---|
Blob storage | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
عنوان SQL لـ Azure | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
شبكة الأحداث | ✔ | ✔ | ✔ | ✔ | |
مراكز الأحداث | ✔ | ✔ | ✔ | ✔ | |
خطافات HTTP والويب | ✔ | ✔ | ✔ | ✔ | |
مركز IoT | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
تطبيقات الجوّال | ✔ | ✔ | ✔ | ||
مراكز الإعلامات | ✔ | ✔ | |||
تخزين قائمة الانتظار | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
ناقل الخدمة | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
تخزين الجداول | ✔ | ✔ | ✔ | ✔ | |
المؤقت | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 سينتهي الدعم للإصدار 1.x من وقت تشغيل Azure Functions في 14 سبتمبر 2026. نوصي بشدة بترحيل تطبيقاتك إلى الإصدار 4.x للحصول على الدعم الكامل.
2 بدءا من وقت تشغيل الإصدار 2.x، يجب تسجيل جميع الروابط باستثناء HTTP وTimer. راجع تسجيل ملحقات الربط.
3 المشغلات غير مدعومة في خطة الاستهلاك. يتطلب مشغلات تستند إلى وقت التشغيل.
4 مدعوم فقط في Kubernetes وIoT Edge وغيرها من الأوضاع المستضافة ذاتيا فقط.
للحصول على معلومات حول الروابط قيد المعاينة أو المعتمدة لاستخدام الإنتاج، راجع اللغات المدعومة.
يتم دعم إصدارات ملحق الربط المحددة فقط أثناء دعم SDK للخدمة الأساسية. تؤثر التغييرات التي يتم إجراؤها على الدعم في إصدار SDK للخدمة الأساسية على دعم الملحق المستهلك.
أمثلة التعليمة البرمجية لروابط البيانات
استخدم الجدول التالي للبحث عن أمثلة لأنواع ربط بيانات معينة توضح لك كيفية العمل مع الارتباطات في الوظائف الخاصة بك. أولاً، قم باختيار علامة التبويب اللغة التي تتوافق مع المشروع.
تعتمد التعليمات البرمجية الملزمة ل C# على نموذج العملية المحدد.
الخدمة | الأمثلة | العينات |
---|---|---|
مساحة تخزين Blob | المشغِّل الادخال الناتج |
الارتباط |
Azure Cosmos DB | المشغِّل الادخال الناتج |
الارتباط |
Azure Data Explorer (Kusto) | الادخال الناتج |
الارتباط |
عنوان SQL لـ Azure | المشغِّل الادخال الناتج |
الارتباط |
Event Grid | المشغِّل الناتج |
الارتباط |
مراكز الأحداث | المشغِّل الناتج |
|
IoT Hub | المشغِّل الناتج |
|
HTTP | المشغِّل | الارتباط |
تخزين قائمة الانتظار | المشغِّل الناتج |
الارتباط |
RabbitMQ | المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة | المشغِّل الناتج |
الارتباط |
SignalR | المشغِّل الادخال الناتج |
|
تخزين الجداول | الادخال الناتج |
|
عدّاد الوقت | المشغِّل | الارتباط |
Twilio | الناتج | الارتباط |
الخدمة | الأمثلة | العينات |
---|---|---|
مساحة تخزين Blob | المشغِّل الادخال الناتج |
الارتباط |
Azure Cosmos DB | المشغِّل الادخال الناتج |
الارتباط |
Azure Data Explorer (Kusto) | الادخال الناتج |
الارتباط |
عنوان SQL لـ Azure | المشغِّل الادخال الناتج |
|
Event Grid | المشغِّل الناتج |
الارتباط |
مراكز الأحداث | المشغِّل الناتج |
|
IoT Hub | المشغِّل الناتج |
|
HTTP | المشغِّل | الارتباط |
تخزين قائمة الانتظار | المشغِّل الناتج |
الارتباط |
RabbitMQ | المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة | المشغِّل الناتج |
الارتباط |
SignalR | المشغِّل الادخال الناتج |
|
تخزين الجداول | الادخال الناتج |
|
عدّاد الوقت | المشغِّل | الارتباط |
Twilio | الناتج | الارتباط |
الخدمة | الأمثلة | العينات |
---|---|---|
مساحة تخزين Blob | المشغِّل الادخال الناتج |
الارتباط |
Azure Cosmos DB | المشغِّل الادخال الناتج |
الارتباط |
Azure Data Explorer (Kusto) | الادخال الناتج |
|
عنوان SQL لـ Azure | المشغِّل الادخال الناتج |
الارتباط |
Event Grid | المشغِّل الناتج |
الارتباط |
مراكز الأحداث | المشغِّل الناتج |
|
IoT Hub | المشغِّل الناتج |
|
HTTP | المشغِّل | الارتباط |
تخزين قائمة الانتظار | المشغِّل الناتج |
الارتباط |
RabbitMQ | المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة | المشغِّل الناتج |
الارتباط |
SignalR | المشغِّل الادخال الناتج |
|
تخزين الجداول | الادخال الناتج |
|
عدّاد الوقت | المشغِّل | الارتباط |
Twilio | الناتج | الارتباط |
الخدمة | الأمثلة | العينات |
---|---|---|
مساحة تخزين Blob | المشغِّل الادخال الناتج |
الارتباط |
Azure Cosmos DB | المشغِّل الادخال الناتج |
الارتباط |
عنوان SQL لـ Azure | المشغِّل الادخال الناتج |
|
Event Grid | المشغِّل الناتج |
الارتباط |
مراكز الأحداث | المشغِّل الناتج |
|
IoT Hub | المشغِّل الناتج |
|
HTTP | المشغِّل | الارتباط |
تخزين قائمة الانتظار | المشغِّل الناتج |
الارتباط |
RabbitMQ | المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة | المشغِّل الناتج |
الارتباط |
SignalR | المشغِّل الادخال الناتج |
|
تخزين الجداول | الادخال الناتج |
|
عدّاد الوقت | المشغِّل | الارتباط |
Twilio | الناتج | الارتباط |
تعتمد التعليمات البرمجية الملزمة ل Python على إصدار طراز Python.
الخدمة | الأمثلة | العينات |
---|---|---|
مساحة تخزين Blob | المشغِّل الادخال الناتج |
الارتباط |
Azure Cosmos DB | المشغِّل الادخال الناتج |
الارتباط |
Azure Data Explorer (Kusto) | الادخال الناتج |
|
عنوان SQL لـ Azure | المشغِّل الادخال الناتج |
الارتباط |
Event Grid | المشغِّل الناتج |
الارتباط |
مراكز الأحداث | المشغِّل الناتج |
|
IoT Hub | المشغِّل الناتج |
|
HTTP | المشغِّل | الارتباط |
تخزين قائمة الانتظار | المشغِّل الناتج |
الارتباط |
RabbitMQ | المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة | المشغِّل الناتج |
الارتباط |
SignalR | المشغِّل الادخال الناتج |
|
تخزين الجداول | الادخال الناتج |
|
عدّاد الوقت | المشغِّل | الارتباط |
Twilio | الناتج | الارتباط |
روابط بيانات مخصصة
يمكنك إنشاء روابط إدخال وإخراج مخصصة. يجب أن تكون لارتباطات مؤلفة في .NET ولكن يمكن استهلاكها من أي لغة معتمدة. لمزيد من المعلومات حول إنشاء روابط مخصصة، راجع إنشاء روابط إدخال وإخراج مخصصة.
الموارد
- ربط التعبيرات والأنماط
- استخدام قيمة إرجاع Azure Function
- كيفية تسجيل تعبير ربط
- اختبار:
- معالجة أخطاء الربط