إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
استخدام ربط إخراج RabbitMQ لإرسال رسائل إلى قائمة انتظار RabbitMQ.
إشعار
يتم دعم روابط RabbitMQ بشكل كامل فقط على خطط Elastic Premium و Dedicated (App Service). خطط الاستهلاك والاستهلاك المرنة غير مدعومة حتى الآن.
روابط RabbitMQ غير مدعومة من قبل وقت تشغيل Azure Functions v1.x.
للحصول على معلومات حول تفاصيل الإعداد والتكوين، راجع الاستعراض العام.
مثال
يمكنك إنشاء دالة C# باستخدام أحد أوضاع C# التالية:
- نموذج العامل المعزول: دالة C# المترجمة التي يتم تشغيلها في عملية عامل معزولة عن وقت التشغيل. مطلوب عملية عامل معزولة لدعم وظائف C# التي تعمل على إصدارات الدعم طويل المدى (LTS) والإصدارات غير LTS ل .NET و.NET Framework.
- نموذج قيد المعالجة: دالة C# المحولة برمجيا التي تعمل في نفس العملية مثل وقت تشغيل Azure Functions.
- البرنامج النصي 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# قيد المعالجة سمة لتعريف ربط إخراج يكتب إلى قائمة انتظار RabbitMQ.
يقبل الدالة RabbitMQOutputAttribute الإنشائية هذه المعلمات:
| المعلمة | الوصف |
|---|---|
| اسم قائمة الانتظار | اسم قائمة الانتظار التي يمكن تلقي الرسائل منها. |
| اسم المضيف | لم تعد هذه المعلمة مدعومة ويتم تجاهلها. ستتم إزالته في إصدار مستقبلي. |
| ConnectionStringSetting | اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال لخادم RabbitMQ. يأخذ هذا الإعداد اسم مفتاح إعداد التطبيق فقط، ولا يمكنك تعيين قيمة سلسلة اتصال مباشرة. لمزيد من المعلومات، راجع الاتصالات. |
| UserNameSetting | لم تعد هذه المعلمة مدعومة ويتم تجاهلها. ستتم إزالته في إصدار مستقبلي. |
| تحديد كلمة المرور | لم تعد هذه المعلمة مدعومة ويتم تجاهلها. ستتم إزالته في إصدار مستقبلي. |
| منفذ | يستدعي أو يعين المنفذ المستخدم. الافتراضات إلى 0، مما يشير إلى إعداد المنفذ الافتراضي لعميل RabbitMQ5672. |
| DisableCertificateValidation | الحصول على قيمة تشير إلى ما إذا كان يجب تعطيل التحقق من صحة الشهادة أو تعيينها. غير مستحسن للإنتاج. لا ينطبق عند تعطيل SSL. |
تعليقات توضيحية
يسمح التعليق التوضيحي RabbitMQOutput لك بإنشاء وظيفة تعمل عند إنشاء رسالة RabbitMQ.
يدعم التعليق التوضيحي إعدادات التكوين التالية:
| الإعدادات | الوصف |
|---|---|
| اسم قائمة الانتظار | اسم قائمة الانتظار التي يمكن تلقي الرسائل منها. |
| connectionStringSetting | اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال لخادم RabbitMQ. يأخذ هذا الإعداد اسم مفتاح إعداد التطبيق فقط، ولا يمكنك تعيين قيمة سلسلة اتصال مباشرة. لمزيد من المعلومات، راجع الاتصالات. |
| disableCertificateValidation | الحصول على قيمة تشير إلى ما إذا كان يجب تعطيل التحقق من صحة الشهادة أو تعيينها. غير مستحسن للإنتاج. لا ينطبق عند تعطيل SSL. |
التكوين
يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.
| خاصية function.json | الوصف |
|---|---|
| النوع | يجب تعيينه إلى RabbitMQ. |
| الاتجاه | يجب تعيينه إلى out. |
| الاسم | اسم المتغير الذي يمثل قائمة الانتظار في التعليمة البرمجية للدالة. |
| اسم قائمة الانتظار | اسم قائمة الانتظار لإرسال الرسائل إليها. |
| connectionStringSetting | اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال لخادم RabbitMQ. يأخذ هذا الإعداد اسم مفتاح إعداد التطبيق فقط، ولا يمكنك تعيين قيمة سلسلة اتصال مباشرة. لمزيد من المعلومات، راجع الاتصالات. |
| disableCertificateValidation | الحصول على قيمة تشير إلى ما إذا كان يجب تعطيل التحقق من صحة الشهادة أو تعيينها. غير مستحسن للإنتاج. لا ينطبق عند تعطيل SSL. |
عندما تقوم بالتطوير محليًا، أضف إعدادات التطبيق في ملف local.settings.json في المجموعة Values.
راجع قسم Example للحصول على أمثلة كاملة.
الاستخدام
يعتمد نوع المعلمة الذي يدعمه مشغل RabbitMQ على إصدار وقت تشغيل الوظائف وإصدار حزمة الملحق وصيغة C# المستخدمة.
تدعم روابط RabbitMQ حاليا أنواع الكائنات السلسلة والقابلة للتسلسل فقط عند التشغيل في عملية عامل معزولة.
استخدم أنواع المعلمات التالية لربط الإخراج:
-
byte[]- إذا كانت قيمة المعلمة فارغة عند إنهاء الدالة، فلا تُنشئ الدالات رسالة. -
string- إذا كانت قيمة المعلمة فارغة عند إنهاء الدالة، فلا تُنشئ الدالات رسالة. -
POJO- إذا لم يتم تنسيق قيمة المعلمة ككائن Java، فسيتم تلقي خطأ.
رسالة قائمة الانتظار متاحة عبر context.bindings.<NAME>المكان <NAME>الذي يطابق فيه الاسم المحدد في unfection.json. إذا كانت البيانات الأساسية JavaScript Object Notation، يتم إلغاء تسلسل القيمة في العنصر.
اتصالات
هام
لا يدعم ربط RabbitMQ مصادقة Microsoft Entra والهويات المدارة. يمكنك استخدام Azure Key Vault لإدارة سلسلة الاتصال RabbitMQ مركزيا. لمعرفة المزيد، راجع إدارة الاتصالات.
بدءا من الإصدار 2.x من الملحق، hostNameuserNameSettingو، وpasswordSetting، لم تعد مدعومة لتعريف اتصال بخادم RabbitMQ. يجب عليك بدلا من ذلك استخدام connectionStringSetting.
connectionStringSetting يمكن للخاصية قبول اسم زوج قيمة المفتاح فقط في إعدادات التطبيق. لا يمكنك تعيين قيمة سلسلة اتصال مباشرة في الربط.
على سبيل المثال، عند التعيين connectionStringSetting إلى rabbitMQConnection في تعريف الربط الخاص بك، يجب أن يحتوي تطبيق الوظائف على إعداد تطبيق يسمى rabbitMQConnection يرجع إما قيمة اتصال مثل amqp://myuser:***@contoso.rabbitmq.example.com:5672 أو مرجع Azure Key Vault.
عند التشغيل محليا، يجب أن يكون لديك أيضا قيمة المفتاح للتعريف connectionStringSetting في ملف local.settings.json . وإلا، فلن يتمكن تطبيقك من الاتصال بالخدمة من الكمبيوتر المحلي ويحدث خطأ.