إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذه المقالة، ستتعرف على المفاهيم عالية المستوى المحيطة بالمشغلات والروابط للوظائف.
تؤدي المشغلات إلى تشغيل وظيفة. يحدد المشغل كيفية استدعاء الدالة ، ويجب أن يكون للوظيفة مشغل واحد بالضبط. يمكن أن تمرر المشغلات أيضا البيانات إلى الدالة الخاصة بك، كما تفعل مع استدعاءات الأسلوب.
يعد الربط بوظيفة طريقة لربط وظائفك بموارد أخرى بشكل تعريفي. إما أن تمرر الروابط البيانات إلى وظيفتك ( ربط الإدخال) أو تمكنك من كتابة البيانات من وظيفتك ( ربط الإخراج) باستخدام معلمات الربط. مشغل الدالة الخاص بك هو في الأساس نوع خاص من ربط الإدخال.
يمكنك مزج الروابط ومطابقتها لتناسب السيناريو المحدد لوظيفتك. الروابط اختيارية ، وقد تحتوي الوظيفة على واحد أو عدة روابط إدخال و / أو إخراج.
وتساعدك المشغلات والارتباطات على تجنب وصول التشفير الثابت إلى خدمات أخرى. تتلقى الوظيفة البيانات (على سبيل المثال، محتوى رسالة قائمة انتظار) في مقاييس الوظيفة. إرسال البيانات (على سبيل المثال، لإنشاء رسالة قائمة انتظار) باستخدام قيمة الإرجاع للوظيفة.
ضع في اعتبارك الأمثلة التالية لكيفية تنفيذ الوظائف:
| سيناريو مثال | المشغِّل | ربط بيانات الإدخال | ربط بيانات الإخراج |
|---|---|---|---|
| تصل رسالة قائمة انتظار جديدة، والتي تقوم بتشغيل وظيفة للكتابة إلى قائمة انتظار أخرى. | رتل* | بلا | رتل* |
| يقرأ الوظيفة المجدولة محتوى مساحة تخزين Azure Blob وينشئ مستند Azure Cosmos DB جديد. | عدّاد الوقت | مخزن البيانات الثنائية الكبيرة | Azure Cosmos DB |
| يستخدم Azure Event Grid لقراءة صورة من مخزن البيانات الثنائية الكبيرة ومستند من Azure Cosmos DB لإرسال بريد إلكتروني. | شبكة الأحداث | مخزن البيانات الثنائية الكبيرة و Azure Cosmos DB | SendGrid |
* يمثل قوائم انتظار مختلفة.
لا يقصد من هذه الأمثلة أن تكون شاملة، لكنها توضح كيف يمكنك استخدام المشغلات والروابط معا. للحصول على مجموعة أكثر شمولا من السيناريوهات، انظر دالات Azure scenarios.
تلميح
دالات Azure لا يتطلب منك استخدام روابط الإدخال والإخراج للاتصال بخدمات Azure. يمكنك دائما إنشاء عميل Azure SDK في كودك واستخدامه بدلا من ذلك لنقل البيانات. لمزيد من المعلومات، راجع الاتصال بالخدمات.
تعريفات المشغل والربط
المثال التالي يظهر دالة يتم تفعيلها بواسطة HTTP مع رابط إخراج يكتب رسالة إلى قائمة انتظار تخزين Azure.
بالنسبة لوظائف مكتبة فئة C#، يمكنك تكوين المشغلات والروابط عن طريق تزيين الأساليب والمعلمات بسمات C#. قد تعتمد السمة المحددة التي تقوم بتطبيقها على نموذج وقت تشغيل C#:
يتم تعريف مشغل HTTP (HttpTrigger) على Run الأسلوب لدالة تسمى HttpExample تقوم بإرجاع كائن MultiResponse :
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
يوضح هذا المثال تعريف الكائن MultiResponse . يعود HttpResponse تعريف الكائن إلى طلب HTTP ويكتب رسالة إلى قائمة انتظار تخزين باستخدام QueueOutput ربط:
public class MultiResponse
{
[QueueOutput("outqueue", Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
لمزيد من المعلومات، راجع دليل C# لنماذج العمال المعزولين.
تستخدم function.json وظائف البرنامج النصي القديم C # ملف تعريف. لمزيد من المعلومات، راجع مرجع المطور دالات Azure C# (.csx) في موقع المطور.
بالنسبة لوظائف Java، تقوم بتكوين المحفزات والربط عن طريق توضيح طرق ومعلمات محددة. يتم تعريف مشغل HTTP (@HttpTrigger) هذا على run طريقة دالة تسمى HttpExample. تكتب الدالة إلى قائمة انتظار تخزين تسمى outqueue التي يحددها التعليق @QueueOutput على المعامل msg :
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
context.getLogger().info("Java HTTP trigger processed a request.");
لمزيد من المعلومات، راجع دليل المطورين Java.
طريقة تعريفك للمحفزات والروابط لوظائف Node.js تعتمد على النسخة المحددة من Node.js ل دالات Azure:
تحدد الطريقة http الموجودة على الكائن المصدر app مشغل HTTP.
storageQueue تحدد الطريقة الموجودة output ربط الإخراج على هذا المشغل.
const { app, output } = require('@azure/functions');
const queueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'MyStorageConnectionAppSetting',
});
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [queueOutput],
handler: async (request, context) => {
const body = await request.text();
context.extraOutputs.set(queueOutput, body);
return { body: 'Created queue item.' };
},
});
تحدد الطريقة http الموجودة على الكائن المصدر app مشغل HTTP.
storageQueue تحدد الطريقة الموجودة output ربط الإخراج على هذا المشغل.
import { app, HttpRequest, HttpResponseInit, InvocationContext, output } from '@azure/functions';
const queueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'MyStorageConnectionAppSetting',
});
export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
const body = await request.text();
context.extraOutputs.set(queueOutput, body);
return { body: 'Created queue item.' };
}
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [queueOutput],
handler: httpTrigger1,
});
يعرف ملف المثال function.json هذا الدالة:
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"type": "queue",
"direction": "out",
"name": "msg",
"queueName": "outqueue",
"connection": "AzureWebJobsStorage"
}
]
}
لمزيد من المعلومات، راجع دليل مطور PowerShell.
تعتمد طريقة تعريف الدالة على إصدار Python for دالات Azure:
في Python for دالات Azure الإصدار 2، تعرف الدالة مباشرة في الكود باستخدام الديكورات:
app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
اعتبارات ملزمة
لا تدعم جميع الخدمات روابط الإدخال والإخراج. راجع ملحق الربط الخاص بك للحصول على أمثلة تعليمات برمجية محددة للروابط.
التعرف على المشغلات والروابط بشكل مختلف اعتمادًا على لغة التطوير. تأكد من تحديد لغتك في أعلى هذه المقالة.
تقتصر أسماء المشغل والربط على الأحرف الأبجدية الرقمية
_، والتسطير السفلي.
مهمة إضافة روابط إلى دالة
يمكنك تعين الدالة بخدمات أخرى باستخدام روابط الإدخال أو الإخراج. إضافة ربط البيانات بإضافة تعريفات معينة إلى الدالة الخاصة بك. لتعلم الطريقة، راجع أضف الروابط إلى دالة موجودة في دالات Azure.
يدعم دالات Azure عدة ربطات يجب تكوينها بشكل صحيح. على سبيل المثال، يمكن للدالة قراءة البيانات من قائمة انتظار (ربط الإدخال) وكتابة البيانات إلى قاعدة بيانات (ربط الإخراج) في وقت واحد.
ارتباطات البيانات المدعومة
يوضح هذا الجدول الروابط المدعومة في الإصدارات الرئيسية من وقت تشغيل دالات Azure:
| نوع | 4.x1 | 1.x2 | المشغِّل | الإدخال | الإخراج |
|---|---|---|---|---|---|
| مخزن البيانات الثنائية الكبيرة | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Data Explorer (Kusto) | ✔ | ✔ | ✔ | ||
| Azure SQL | ✔ | ✔ | ✔ | ✔ | |
| Dapr4 | ✔ | ✔ | ✔ | ✔ | |
| شبكة الأحداث | ✔ | ✔ | ✔ | ✔ | |
| مراكز الأحداث | ✔ | ✔ | ✔ | ✔ | |
| HTTP وخطافات الويب | ✔ | ✔ | ✔ | ✔ | |
| مركز IoT | ✔ | ✔ | ✔ | ||
| Kafka3 | ✔ | ✔ | ✔ | ||
| تطبيقات الجوال | ✔ | ✔ | ✔ | ||
| بروتوكول سياق النموذج | ✔ | ✔ | |||
| مراكز الإعلامات | ✔ | ✔ | |||
| تخزين قائمة الانتظار | ✔ | ✔ | ✔ | ✔ | |
| ريديس | ✔ | ✔ | ✔ | ✔ | |
| RabbitMQ3 | ✔ | ✔ | ✔ | ||
| SendGrid | ✔ | ✔ | ✔ | ||
| Service Bus | ✔ | ✔ | ✔ | ✔ | |
| Azure SignalR Service | ✔ | ✔ | ✔ | ✔ | |
| تخزين الجدول | ✔ | ✔ | ✔ | ✔ | |
| المؤقت | ✔ | ✔ | ✔ | ||
| Twilio | ✔ | ✔ | ✔ |
- سجل جميع الروابط ما عدا HTTP والمؤقت. انظر سجل دالات Azure امتدادات الربط. هذه الخطوة غير مطلوبة عند استخدام الإصدار 1.x من وقت تشغيل الوظائف.
- ينتهي دعم الإصدار 1.x من مدة تشغيل دالات Azure في 14 سبتمبر 2026. نقل تطبيقاتك إلى الإصدار 4.x لدعم كامل.
- المحفزات غير مدعومة في خطة الاستهلاك. يتطلب هذا النوع من الربط مشغلات تعتمد على وقت التشغيل.
- يدعم هذا النوع من الربط في أوضاع Kubernetes وAzure IoT Edge وغيرها من الأوضاع المستضافة ذاتيا فقط.
للحصول على معلومات حول الروابط قيد المعاينة أو المعتمدة لاستخدام الإنتاج، راجع اللغات المدعومة.
يتم دعم إصدارات معينة من ملحقات الربط فقط أثناء دعم SDK للخدمة الأساسية. تؤثر التغييرات التي يتم إجراؤها على الدعم في إصدار SDK للخدمة الأساسية على دعم الملحق المستهلك.
أنواع SDK
دالات Azure binding extensions use Azure service SDKs to connect to Azure services. أنواع SDK المحددة المستخدمة في الروابط يمكن أن تؤثر على كيفية عملك مع البيانات في وظائفك. بعض الروابط تدعم أنواعا خاصة ب SDK توفر وظائف أغنى وتكامل أفضل مع الخدمة، بينما تستخدم أخرى أنواعا أكثر عمومية مثل السلاسل أو مصفوفات البايتات. عند توفرها، يمكن أن يوفر استخدام أنواع محددة من SDK فوائد مثل تحسين أمان الأنواع، وسهولة معالجة البيانات، والوصول إلى ميزات خاصة بالخدمة.
يشير هذا الجدول إلى امتدادات الربط التي تدعم حاليا أنواع SDK:
| Extension | الأنواع | مستوى الدعم |
|---|---|---|
| مساحة تخزين Azure Blob | BlobClientBlobContainerClientBlockBlobClientPageBlobClientAppendBlobClient |
المحفز: GA المدخل: GA |
| Azure Cosmos DB | CosmosClientDatabaseContainer |
المدخل: GA |
| Azure Event Grid | CloudEventEventGridEvent |
المحفز: GA |
| مراكز أحداث Azure | EventDataEventHubProducerClient |
المحفز: GA |
| Azure Queue Storage | QueueClientQueueMessage |
المحفز: GA |
| ناقل خدمة Azure | ServiceBusClientServiceBusReceiverServiceBusSenderServiceBusMessage |
المحفز: GA |
| مساحة تخزين Azure Table | TableClientTableEntity |
المدخل: GA |
اعتبارات لأنواع SDK:
- عند استخدام تعبيرات الربط التي تعتمد على بيانات المشغل، لا يمكن استخدام أنواع SDK للمشغل نفسه.
- بالنسبة للسيناريوهات التي قد تستخدم فيها نوع SDK، أنشئ وعمل مع عملاء SDK مباشرة بدلا من استخدام رابط الإخراج.
- يستخدم Azure Cosmos DB الزناد Azure Cosmos DB تغيير التغذية ويعرض عناصر التغيير كأنواع قابلة للتسلسلة ب JSON. نتيجة لذلك، لا يتم دعم أنواع SDK لهذا المحفز.
لمزيد من المعلومات، راجع أنواع SDK في دليل مطوري C#.
| Extension | الأنواع | مستوى الدعم | العينات |
|---|---|---|---|
| مساحة تخزين Azure Blob | BlobClientContainerClientStorageStreamDownloader |
المحفز: GA المدخل: GA |
QuickstartBlobClientContainerClientStorageStreamDownloader |
| Azure Cosmos DB | CosmosClientDatabaseProxyContainerProxy |
مدخل: معاينة |
QuickstartContainerProxyCosmosClientDatabaseProxy |
| مراكز أحداث Azure | EventData |
Trigger: معاينة |
QuickstartEventData |
| ناقل خدمة Azure | ServiceBusReceivedMessage |
Trigger: معاينة |
QuickstartServiceBusReceivedMessage |
اعتبارات لأنواع SDK:
- بالنسبة للسيناريوهات التي قد تستخدم فيها نوع SDK، أنشئ وعمل مع عملاء SDK مباشرة بدلا من استخدام رابط الإخراج.
- يستخدم Azure Cosmos DB الزناد Azure Cosmos DB تغيير التغذية ويعرض عناصر التغيير كأنواع قابلة للتسلسلة ب JSON. نتيجة لذلك، لا يتم دعم أنواع SDK لهذا المحفز.
أنواع SDK مدعومة فقط عند استخدام نموذج البرمجة Python v2. لمزيد من المعلومات، راجع SDK أنواع الروابط في دليل المطورين Python.
| Extension | الأنواع | مستوى الدعم |
|---|---|---|
| مساحة تخزين Azure Blob | BlobClientContainerClientReadableStream |
Preview |
| ناقل خدمة Azure | ServiceBusClientServiceBusReceiverServiceBusSenderServiceBusMessage |
Preview |
أنواع SDK مدعومة فقط عند استخدام نموذج البرمجة Node v4. لمزيد من المعلومات، راجع أنواع SDK في دليل المطورين Node.js.
| Extension | الأنواع | مستوى الدعم |
|---|---|---|
| مساحة تخزين Azure Blob | BlobClientBlobContainerClient |
Preview |
لمزيد من المعلومات، راجع SDK types في دليل المطورين Java.
هام
أنواع SDK غير مدعومة حاليا لتطبيقات PowerShell.
أمثلة على التعليمات البرمجية للروابط
استخدم الجدول التالي للعثور على مزيد من الأمثلة على أنواع روابط معينة توضح لك كيفية العمل مع الروابط في الدالات الخاصة بك. أولاً، قم باختيار علامة التبويب اللغة التي تتوافق مع المشروع.
تعتمد التعليمات البرمجية الملزمة ل C# على نموذج العملية المحدد.
| الخدمة | الأمثلة | العينات |
|---|---|---|
| مخزن البيانات الثنائية الكبيرة | مشغل الادخال الناتج |
Link |
| Azure Cosmos DB | مشغل الادخال الناتج |
Link |
| Azure Data Explorer (Kusto) |
الادخال الناتج |
Link |
| Azure SQL | مشغل الادخال الناتج |
Link |
| شبكة الأحداث | مشغل الناتج |
Link |
| مراكز الأحداث | مشغل الناتج |
|
| IoT Hub | مشغل الناتج |
|
| HTTP | مشغل |
Link |
| تخزين قائمة الانتظار | مشغل الناتج |
Link |
| RabbitMQ | مشغل الناتج |
|
| SendGrid | الناتج | |
| Service Bus | مشغل الناتج |
Link |
| Azure SignalR Service | مشغل الادخال الناتج |
|
| تخزين الجدول |
الادخال الناتج |
|
| عدّاد الوقت | مشغل |
Link |
| Twilio | الناتج | Link |
| الخدمة | الأمثلة | العينات |
|---|---|---|
| مخزن البيانات الثنائية الكبيرة | مشغل الادخال الناتج |
Link |
| Azure Cosmos DB | مشغل الادخال الناتج |
Link |
| Azure Data Explorer (Kusto) |
الادخال الناتج |
Link |
| Azure SQL | مشغل الادخال الناتج |
|
| شبكة الأحداث | مشغل الناتج |
Link |
| مراكز الأحداث | مشغل الناتج |
|
| IoT Hub | مشغل الناتج |
|
| HTTP | مشغل |
Link |
| تخزين قائمة الانتظار | مشغل الناتج |
Link |
| RabbitMQ | مشغل الناتج |
|
| SendGrid | الناتج | |
| Service Bus | مشغل الناتج |
Link |
| Azure SignalR Service | مشغل الادخال الناتج |
|
| تخزين الجدول |
الادخال الناتج |
|
| عدّاد الوقت | مشغل |
Link |
| Twilio | الناتج |
| الخدمة | الأمثلة | العينات |
|---|---|---|
| مخزن البيانات الثنائية الكبيرة | مشغل الادخال الناتج |
Link |
| Azure Cosmos DB | مشغل الادخال الناتج |
Link |
| Azure Data Explorer (Kusto) |
الادخال الناتج |
|
| Azure SQL | مشغل الادخال الناتج |
Link |
| شبكة الأحداث | مشغل الناتج |
|
| مراكز الأحداث | مشغل الناتج |
|
| IoT Hub | مشغل الناتج |
|
| HTTP | مشغل |
Link |
| تخزين قائمة الانتظار | مشغل الناتج |
Link |
| RabbitMQ | مشغل الناتج |
|
| SendGrid | الناتج | |
| Service Bus | مشغل الناتج |
Link |
| Azure SignalR Service | مشغل الادخال الناتج |
|
| تخزين الجدول |
الادخال الناتج |
|
| عدّاد الوقت | مشغل |
|
| Twilio | الناتج |
| الخدمة | الأمثلة | العينات |
|---|---|---|
| مخزن البيانات الثنائية الكبيرة | مشغل الادخال الناتج |
|
| Azure Cosmos DB | مشغل الادخال الناتج |
|
| Azure SQL | مشغل الادخال الناتج |
|
| شبكة الأحداث | مشغل الناتج |
|
| مراكز الأحداث | مشغل الناتج |
|
| IoT Hub | مشغل الناتج |
|
| HTTP | مشغل |
Link |
| تخزين قائمة الانتظار | مشغل الناتج |
|
| RabbitMQ | مشغل الناتج |
|
| SendGrid | الناتج | |
| Service Bus | مشغل الناتج |
|
| Azure SignalR Service | مشغل الادخال الناتج |
|
| تخزين الجدول |
الادخال الناتج |
|
| عدّاد الوقت | مشغل |
|
| Twilio | الناتج |
يعتمد كود التثبيت ل Python على نسخة نموذج Python.
| الخدمة | الأمثلة | العينات |
|---|---|---|
| مخزن البيانات الثنائية الكبيرة | مشغل الادخال الناتج |
Link |
| Azure Cosmos DB | مشغل الادخال الناتج |
Link |
| Azure Data Explorer (Kusto) |
الادخال الناتج |
|
| Azure SQL | مشغل الادخال الناتج |
Link |
| شبكة الأحداث | مشغل الناتج |
|
| مراكز الأحداث | مشغل الناتج |
|
| IoT Hub | مشغل الناتج |
|
| HTTP | مشغل |
Link |
| تخزين قائمة الانتظار | مشغل الناتج |
|
| RabbitMQ | مشغل الناتج |
|
| SendGrid | الناتج | |
| Service Bus | مشغل الناتج |
Link |
| Azure SignalR Service | مشغل الادخال الناتج |
|
| تخزين الجدول |
الادخال الناتج |
|
| عدّاد الوقت | مشغل |
|
| Twilio | الناتج |
روابط بيانات مخصصة
يمكنك إنشاء روابط إدخال وإخراج مخصصة. يجب أن تكون الروابط مكتوبة بلغة .NET، ولكن يمكن استهلاكها من أي لغة مدعومة. لمزيد من المعلومات حول إنشاء روابط مخصصة، راجع إنشاء روابط إدخال وإخراج مخصصة.