نظرة عامة إلى مخرجات ارتباط 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 التالية التعليق التوضيحي @RabbitMQOutput من أنواع Java RabbitMQ لوصف التكوين المطلوب لربط إخراج قائمة انتظار RabbitMQ. الدالة تقوم بإرسال رسالة إلى قائمة انتظار RabbitMQ عند تشغيلها بواسطة TimerTrigger كل 5 دقائق.

@FunctionName("RabbitMQOutputExample")
public void run(
@TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
@RabbitMQOutput(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "hello") OutputBinding<String> output,
final ExecutionContext context) {
    output.setValue("Some string");
}

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

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

{
    "bindings": [
        {
            "type": "httpTrigger",
            "direction": "in",
            "authLevel": "function",
            "name": "input",
            "methods": [
                "get",
                "post"
            ]
        },
        {
            "type": "rabbitMQ",
            "name": "outputMessage",
            "queueName": "outputQueue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting",
            "direction": "out"
        }
    ]
}

إليك التعليمة البرمجية لـJavaScript:

module.exports = async function (context, input) {
    context.bindings.outputMessage = input.body;
};

يُظهر المثال التالي مخرج ارتباط RabbitMQ في ملف function.json ودالة Python التي تستخدم الارتباط. تقرأ الدالة في الرسالة من مشغل HTTP وإخراجها إلى قائمة انتظار RabbitMQ.

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

{
    "scriptFile": "__init__.py",
    "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
                "get",
                "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "$return"
        },​​
        {
            "type": "rabbitMQ",
            "name": "outputMessage",
            "queueName": "outputQueue",
            "connectionStringSetting": "rabbitMQConnectionAppSetting",
            "direction": "out"
        }
    ]
}

في _init_.py:

import azure.functions as func

def main(req: func.HttpRequest, outputMessage: func.Out[str]) -> func.HttpResponse:
    input_msg = req.params.get('message')
    outputMessage.set(input_msg)
    return 'OK'

السمات

تستخدم كل من مكتبات المعالجة والعامل المعزول 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)
{

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

يسمح التعليق التوضيحي RabbitMQOutput لك بإنشاء وظيفة تعمل عند إنشاء رسالة 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 ‏‏الوصف
النوع يجب تعيينه إلى RabbitMQ.
الاتجاه يجب تعيينه إلى out.
الاسم اسم المتغير الذي يمثل قائمة الانتظار في التعليمة البرمجية للدالة.
queueName اسم قائمة الانتظار لإرسال الرسائل إليها.
hostName اسم المضيف لقائمة الانتظار، مثل 10.26.45.210. يتم التجاهل عند استخدام connectStringSetting.
"اسم المستخدم" اسم إعداد التطبيق الذي يحتوي على اسم المستخدم للوصول إلى قائمة الانتظار، مثل UserNameSetting: "< UserNameFromSettings >". يتم التجاهل عند استخدام connectStringSetting.
كلمة المرور اسم إعداد التطبيق الذي يحتوي على كلمة المرور للوصول إلى قائمة الانتظار، مثل UserNameSetting: "< UserNameFromSettings >". يتم التجاهل عند استخدام connectStringSetting.
connectionStringSetting اسم إعداد التطبيق الذي يحتوي على سلسلة اتصال قائمة انتظار رسائل RabbitMQ. لن يعمل المشغل عند تحديد سلسلة الاتصال مباشرة بدلًا من إعداد تطبيق في local.settings.json. على سبيل المثال، عند الضبطconnectionStringSetting: "rabbitMQConnection"، في كل منlocal.settings.jsonوفي تطبيق الوظيفة الخاص بك، تحتاج إلى إعداد مثل "rabbitMQConnection" : "< ActualConnectionstring >".
المنفذ يحصل أو يعين المنفذ المستخدم. الافتراضات إلى 0، مما يشير إلى إعداد المنفذ الافتراضي لعميل RabbitMQ5672.

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

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

الاستخدام

يعتمد نوع المعلمة الذي يدعمه مشغل RabbitMQ على إصدار وقت تشغيل الوظائف وإصدار حزمة الملحق وصيغة C# المستخدمة.

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

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

استخدم أنواع المعلمات التالية لربط الإخراج:

  • byte[] - إذا كانت قيمة المعلمة فارغة عند إنهاء الدالة، فلا تُنشئ الدالات رسالة.
  • string - إذا كانت قيمة المعلمة فارغة عند إنهاء الدالة، فلا تُنشئ الدالات رسالة.
  • POJO - إذا لم يتم تنسيق قيمة المعلمة ككائن Java، فسيتم تلقي خطأ.

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

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

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