نظرة عامة على مشغل RabbitMQ لـ Azure Functions

إشعار

يتم دعم ربط البيانات الخاصة بـRabbitMQ بشكل كامل فقط من خلال الخطط المميزة والمخصصة. الاستهلاك غير مدعم.

استخدم مشغل RabbitMQ للرد على الرسائل من قائمة انتظار RabbitMQ.

للحصول على معلومات حول تفاصيل الإعداد والتكوين، راجع الاستعراض العام.

مثال

يمكن إنشاء دالة C# باستخدام أحد أوضاع C# التالية:

  • نموذج العامل المعزول: دالة C# المترجمة التي يتم تشغيلها في عملية عامل معزولة عن وقت التشغيل. عملية العامل المعزولة مطلوبة لدعم وظائف C# التي تعمل على إصدارات LTS وغير LTS .NET و.NET Framework.
  • نموذج قيد المعالجة: دالة C# المحولة برمجيا التي تعمل في نفس العملية مثل وقت تشغيل الوظائف.
  • البرنامج النصي C#: يستخدم بشكل أساسي عند إنشاء وظائف C# في مدخل Microsoft Azure.

هام

سينتهي الدعم للنموذج قيد التنفيذ في 10 نوفمبر 2026. نوصي بشدة بترحيل تطبيقاتك إلى نموذج العامل المعزول للحصول على الدعم الكامل.

[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
    FunctionContext context)
{
    var logger = context.GetLogger(nameof(RabbitMQFunction));

    logger.LogInformation(item);

    var message = $"Output message created at {DateTime.Now}";
    return message;
}

تستخدم وظيفة Java التالية @RabbitMQTrigger التعليق التوضيحي من أنواع Java RabbitMQ لوصف التكوين المطلوب لتشغيل قائمة انتظار RabbitMQ. تلتقط الوظيفة الرسالة الموضوعة في قائمة الانتظار وتضيفها إلى السجلات.

@FunctionName("RabbitMQTriggerExample")
public void run(
    @RabbitMQTrigger(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "queue") String input,
    final ExecutionContext context)
{
    context.getLogger().info("Java HTTP trigger processed a request." + input);
}

يظهر المثال التالي ربط مشغل RabbitMQ في ملف function.json ووظيفة JavaScript التي تستخدم الربط. تقرأ الوظيفة رسالة RabbitMQ وتسجلها.

فيما يلي بيانات الربط في ملفfunction.json:

{​​
    "bindings": [
        {​​
            "name": "myQueueItem",
            "type": "rabbitMQTrigger",
            "direction": "in",
            "queueName": "queue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting"
        }​​
    ]
}​​

فيما يلي التعليمة البرمجية للبرنامج الأساسي لـ JavaScript:

module.exports = async function (context, myQueueItem) {​​
    context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
}​​;

يوضح المثال التالي كيفية قراءة رسالة قائمة انتظار RabbitMQ عبر مشغل.

يُعرف ربط RabbitMQ في function.json حيث يُعين النوع إلى RabbitMQTrigger.

{​​
    "scriptFile": "__init__.py",
    "bindings": [
        {​​
            "name": "myQueueItem",
            "type": "rabbitMQTrigger",
            "direction": "in",
            "queueName": "queue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting"
        }​​
    ]
}​​
import logging
import azure.functions as func

def main(myQueueItem) -> None:
    logging.info('Python RabbitMQ trigger function processed a queue item: %s', myQueueItem)

السمات

تستخدم كل من مكتبات المعالجة والعامل المعزول C# السمة لتعريف الدالة. يستخدم البرنامج النصي C# بدلاً من ذلك ملف تكوين function.json.

تأخذ الدالة الإنشائية سمة المعلمات التالية:

المعلمة ‏‏الوصف‬
QueueName اسم قائمة الانتظار التي يمكن تلقي الرسائل منها.
HostName اسم المضيف لقائمة الانتظار، مثل 10.26.45.210. يتم التجاهل عند استخدام ConnectStringSetting.
UserNameSetting اسم إعداد التطبيق الذي يحتوي على اسم المستخدم للوصول إلى قائمة الانتظار، مثل UserNameSetting: "%< UserNameFromSettings >%". يتم التجاهل عند استخدام ConnectStringSetting.
PasswordSetting اسم إعداد التطبيق الذي يحتوي على كلمة المرور للوصول إلى قائمة الانتظار، مثلPasswordSetting: "%< PasswordFromSettings >%". يتم التجاهل عند استخدام ConnectStringSetting.
ConnectionStringSetting اسم إعداد التطبيق الذي يحتوي على سلسلة اتصال قائمة انتظار رسائل RabbitMQ. لن يعمل المشغل عندما تحدد سلسلة الاتصال مباشرة بدلًا من ذلك من خلال إعداد التطبيق. على سبيل المثال، عند تعيينك ConnectionStringSetting: "rabbitMQConnection"، في كل من local.settings.json وفي تطبيق الوظيفة الخاص بك، تحتاج إلى إعداد مثل"RabbitMQConnection" : "< ActualConnectionstring >".
منفذ يستدعي أو يعين المنفذ المستخدم. الافتراضات إلى 0، مما يشير إلى إعداد المنفذ الافتراضي لعميل RabbitMQ5672.

في مكتبات الفئات C#‎، استخدم السمة RabbitMQTrigger.

فيما يلي سمة RabbitMQTrigger في توقيع أسلوب لمكتبة عملية عامل معزولة:

[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
    FunctionContext context)
{

تعليقات توضيحية

يسمح التعليق التوضيحي RabbitMQTrigger لك بإنشاء وظيفة تعمل عند إنشاء رسالة RabbitMQ.

يدعم الشرح خيارات التشكيل التالية:

المعلمة ‏‏الوصف‬
queueName اسم قائمة الانتظار التي يمكن تلقي الرسائل منها.
hostName اسم المضيف لقائمة الانتظار، مثل 10.26.45.210. يتم التجاهل عند استخدام ConnectStringSetting.
userNameSetting اسم إعداد التطبيق الذي يحتوي على اسم المستخدم للوصول إلى قائمة الانتظار، مثل UserNameSetting: "%< UserNameFromSettings >%". يتم التجاهل عند استخدام ConnectStringSetting.
passwordSetting اسم إعداد التطبيق الذي يحتوي على كلمة المرور للوصول إلى قائمة الانتظار، مثلPasswordSetting: "%< PasswordFromSettings >%". يتم التجاهل عند استخدام ConnectStringSetting.
connectionStringSetting اسم إعداد التطبيق الذي يحتوي على سلسلة اتصال قائمة انتظار رسائل RabbitMQ. لن يعمل المشغل عندما تحدد سلسلة الاتصال مباشرة بدلًا من ذلك من خلال إعداد التطبيق. على سبيل المثال، عند تعيينك ConnectionStringSetting: "rabbitMQConnection"، في كل من local.settings.json وفي تطبيق الوظيفة الخاص بك، تحتاج إلى إعداد مثل"RabbitMQConnection" : "< ActualConnectionstring >".
المنفذ يستدعي أو يعين المنفذ المستخدم. الافتراضات إلى 0، مما يشير إلى إعداد المنفذ الافتراضي لعميل RabbitMQ5672.

التكوين

يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.

خاصية function.json ‏‏الوصف
النوع يجب تعيينه إلى RabbitMQTrigger.
الاتجاه يجب تعيينه إلى in.
الاسم اسم المتغير الذي يمثل قائمة الانتظار في التعليمة البرمجية للدالة.
queueName اسم قائمة الانتظار التي يمكن تلقي الرسائل منها.
hostName اسم المضيف لقائمة الانتظار، مثل 10.26.45.210. يتم التجاهل عند استخدام connectStringSetting.
userNameSetting اسم إعداد التطبيق الذي يحتوي على اسم المستخدم للوصول إلى قائمة الانتظار، مثل UserNameSetting: "%< UserNameFromSettings >%". يتم التجاهل عند استخدام connectStringSetting.
passwordSetting اسم إعداد التطبيق الذي يحتوي على كلمة المرور للوصول إلى قائمة الانتظار، مثلPasswordSetting: "%< PasswordFromSettings >%". يتم التجاهل عند استخدام connectStringSetting.
connectionStringSetting اسم إعداد التطبيق الذي يحتوي على سلسلة اتصال قائمة انتظار رسائل RabbitMQ. لن يعمل المشغل عندما تحدد سلسلة الاتصال مباشرة بدلًا من ذلك من خلال إعداد التطبيق. على سبيل المثال، عند تعيينك connectionStringSetting: "rabbitMQConnection"، في كل من local.settings.json وفي تطبيق الوظيفة الخاص بك، تحتاج إلى إعداد مثل"rabbitMQConnection" : "< ActualConnectionstring >".
المنفذ يستدعي أو يعين المنفذ المستخدم. الافتراضات إلى 0، مما يشير إلى إعداد المنفذ الافتراضي لعميل RabbitMQ5672.

عندما تقوم بالتطوير محليًا، أضف إعدادات التطبيق في ملف local.settings.json في المجموعة Values.

راجع قسم Example للحصول على أمثلة كاملة.

الاستخدام

يعتمد نوع المعلمة المدعوم من مشغل RabbitMQ على طريقة C# المستخدمة.

تدعم روابط RabbitMQ حاليًا أنواع العناصر القابلة للتسلسل والسلسلة فحسب عند التشغيل في عملية معزولة.

للحصول على مثال كامل، راجع مثال C#‎.

رسالة قائمة الانتظار متاحة عبر context.bindings.<NAME>المكان <NAME>الذي يطابق فيه الاسم المحدد في unfection.json. إذا كانت البيانات الأساسية JavaScript Object Notation، يتم إلغاء تسلسل القيمة في العنصر.

يرجى الرجوع إلى مثالPython.

قوائم الرسائل الخامدة

لا يمكن التحكم في قوائم الرسائل الخامدة والتبادلات أو تكوينها من مشغل RabbitMQ. لاستخدام قوائم انتظار غير المفعول بها، قم بتكوين قائمة الانتظار المستخدمة بواسطة المشغل في RabbitMQ مسبقًا. راجعمستندات RabbitMQ.

إعدادات host.json

يصف هذا القسم إعدادات التكوين المتاحة لهذا الربط في الإصدارات 2.x وأعلى. تنطبق الإعدادات في ملف host.json على جميع الوظائف في مثيل تطبيق الوظائف. يحتوي مثال ملف host.json أدناه على إعدادات الإصدار 2.x + فقط لهذا الربط. للحصول على مزيدٍ من المعلومات عن إعدادات تكوين التطبيق الوظيفي في الإصدارات 2.x والإصدارات الأحدث، راجع مرجع host.json لوظائف Azure.

{
    "version": "2.0",
    "extensions": {
        "rabbitMQ": {
            "prefetchCount": 100,
            "queueName": "queue",
            "connectionString": "amqp://user:password@url:port",
            "port": 10
        }
    }
}
الخاصية Default ‏‏الوصف
prefetchCount 30 الحصول على عدد الرسائل التي يمكن لمستلم الرسائل أن يطلبها في نفس الوقت أو تعيينها ويتم تخزينها مؤقتًا.
queueName غير متوفر اسم قائمة الانتظار لتلقي الرسائل منها.
سلسلة الاتصال غير متوفر سلسلة اتصال قائمة انتظار رسائل RabbitMQ. يتم تحديد سلسلة الاتصال مباشرة هنا وليس من خلال إعداد التطبيق.
المنفذ 0 (يتم تجاهلها إذا كنت تستخدم connectionString) الحصول على المنفذ المُستخدم أو تعيينه. الافتراضات إلى 0، مما يشير إلى إعداد المنفذ الافتراضي للعميل: 5672.

الاختبار المحلي

إشعار

إن connectionString لها الأسبقية على "اسم المضيف" و"اسم المستخدم" و"كلمة المرور". إذا تم تعيين كل هذه العناصر، فستتجاوز connectionString الأخريين.

إذا كنت تختبر محليًا بدون سلسلة اتصال، فيجب عليك ضبط إعداد «اسم المضيف» و«اسم المستخدم» و«كلمة المرور» إذا كان ذلك ممكنًا في قسم «rabbitMQ» لـ host.json:

{
    "version": "2.0",
    "extensions": {
        "rabbitMQ": {
            ...
            "hostName": "localhost",
            "username": "userNameSetting",
            "password": "passwordSetting"
        }
    }
}
الخاصية Default ‏‏الوصف
hostName غير متوفر (يتم تجاهله إذا كنت تستخدم connectionString)
اسم المضيف من قائمة الانتظار (على سبيل: 10.26.45.210)
userName غير متوفر (يتم تجاهله إذا كنت تستخدم connectionString)
الاسم للوصول إلى قائمة الانتظار
كلمة المرور غير متوفر (يتم تجاهله إذا كنت تستخدم connectionString)
كلمة المرور للوصول إلى قائمة الانتظار

تمكين تغيير حجم Runtime

لكي يتم توسيع نطاق المشغل RabbitMQ إلى مثيلات متعددة، يجب تمكين إعداد مراقبة مقياس وقت التشغيل.

في المدخل، يمكن العثور على هذا الإعداد ضمن >إعدادات Function runtime للتكوين لتطبيق الوظائف.

VNETToggle

في CLI، يمكنك تمكين مراقبة مقياس وقت التشغيل باستخدام الأمر التالي:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

مراقبة نقطة نهاية RabbitMQ

لمراقبة قوائم الانتظار والتبادلات الخاصة بك لنقطة نهاية RabbitMQ معينة:

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