إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
عند إنشاء دالة، يتم إضافة كود التحفيز الخاص باللغة إلى project الخاص بك من مجموعة قوالب المشغلات. إذا كنت تريد توصيل الدالة بخدمات أخرى باستخدام روابط الإدخال أو الإخراج، يجب عليك إضافة تعريفات ربط محددة في الدالة. لمعرفة المزيد عن الربطات، راجع Azure Functions مفاهيم المحفزات والربط.
التطوير المحلي
عند تطوير الدالات محليا، تحتاج إلى تحديث التعليمات البرمجية للدالة لإضافة روابط. بالنسبة للغات التي تستخدم function.json، يوفر Visual Studio Code أدوات لإضافة الروابط إلى الدالة.
إضافة روابط يدويا استنادا إلى الأمثلة
عند إضافة ربط إلى دالة موجودة، تحتاج إلى إضافة سمات خاصة بالربط إلى تعريف الدالة في التعليمات البرمجية.
عند إضافة ربط إلى دالة موجودة، تحتاج إلى إضافة تعليقات توضيحية خاصة بالربط إلى تعريف الدالة في التعليمات البرمجية.
عند إضافة ربط إلى دالة موجودة، تحتاج إلى تحديث التعليمات البرمجية للدالة وإضافة تعريف إلى ملف التكوين function.json.
عند إضافة ربط إلى دالة موجودة، تحتاج إلى تحديث تعريف الدالة، اعتمادا على النموذج الخاص بك:
المثال التالي يوضح تعريف الدالة بعد إضافة Queue Storage ربط الإخراج إلى دالة HTTP التي تم تفعيلها :
نظرا لأن الدالة التي تم تشغيلها من قبل HTTP تقوم أيضا بإرجاع استجابة HTTP، ترجع الدالة كائنا MultiResponse ، والذي يمثل كلا من إخراج HTTP وقوائم الانتظار.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
هذا المثال هو تعريف MultiResponse العنصر الذي يتضمن ربط الإخراج:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
يستخدم هذا المثال ASP.NET Core التكامل. إذا لم تكن تستخدم ASP.NET Core التكامل، عليك تغيير HttpRequest إلى HttpRequestData وIActionResult إلى HttpResponseData.
يتم إرسال الرسائل إلى قائمة الانتظار عند اكتمال الدالة. تعتمد الطريقة التي تحدد بها ربط الإخراج على نموذج العملية. لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
@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) {
لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
تعتمد الطريقة التي تحدد بها ربط الإخراج على إصدار نموذج Node.js الخاص بك. لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
@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.')
تعتمد الطريقة التي تحدد بها ربط الإخراج على إصدار نموذج Python الخاص بك. لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
تعتمد الطريقة التي تحدد بها ربط الإخراج على إصدار نموذج Node.js الخاص بك. لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
استخدم الجدول التالي للبحث عن أمثلة على أنواع روابط معينة يمكنك استخدامها لإرشادك في تحديث دالة موجودة. أولا، اختر تبويب اللغة الذي يتوافق مع project الخاص بك.
تعتمد التعليمات البرمجية الملزمة ل C# على نموذج العملية المحدد.
| الخدمة | امثله | العينات |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
المشغِّل الادخال الناتج |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Trigger Input Output |
Link |
| شبكة الأحداث |
المشغِّل الناتج |
Link |
| مراكز الأحداث |
المشغِّل الناتج |
|
| IoT Hub |
المشغِّل الناتج |
|
| HTTP | المشغِّل | Link |
| Queue Storage |
Trigger Output |
Link |
| RabbitMQ |
المشغِّل الناتج |
|
| SendGrid | الناتج | |
| Service Bus |
المشغِّل الناتج |
Link |
| Azure SignalR Service |
المشغِّل الادخال الناتج |
|
| Table Storage |
Input Output |
|
| الموقت | المشغِّل | Link |
| Twilio | الناتج | Link |
| الخدمة | امثله | العينات |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
المشغِّل الادخال الناتج |
Link |
| Azure Data Explorer |
Input Output |
Link |
| Azure SQL |
Trigger Input Output |
|
| شبكة الأحداث |
المشغِّل الناتج |
Link |
| مراكز الأحداث |
المشغِّل الناتج |
|
| IoT Hub |
المشغِّل الناتج |
|
| HTTP | المشغِّل | Link |
| Queue Storage |
Trigger Output |
Link |
| RabbitMQ |
المشغِّل الناتج |
|
| SendGrid | الناتج | |
| Service Bus |
المشغِّل الناتج |
Link |
| Azure SignalR Service |
المشغِّل الادخال الناتج |
|
| Table Storage |
Input Output |
|
| الموقت | المشغِّل | Link |
| Twilio | الناتج |
| الخدمة | امثله | العينات |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
المشغِّل الادخال الناتج |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Trigger Input Output |
Link |
| شبكة الأحداث |
المشغِّل الناتج |
|
| مراكز الأحداث |
المشغِّل الناتج |
|
| IoT Hub |
المشغِّل الناتج |
|
| HTTP | المشغِّل | Link |
| Queue Storage |
Trigger Output |
Link |
| RabbitMQ |
المشغِّل الناتج |
|
| SendGrid | الناتج | |
| Service Bus |
المشغِّل الناتج |
Link |
| Azure SignalR Service |
المشغِّل الادخال الناتج |
|
| Table Storage |
Input Output |
|
| الموقت | المشغِّل | |
| Twilio | الناتج |
| الخدمة | امثله | العينات |
|---|---|---|
| Blob Storage |
Trigger Input Output |
|
| Azure Cosmos DB |
المشغِّل الادخال الناتج |
|
| Azure SQL |
Trigger Input Output |
|
| شبكة الأحداث |
المشغِّل الناتج |
|
| مراكز الأحداث |
المشغِّل الناتج |
|
| IoT Hub |
المشغِّل الناتج |
|
| HTTP | المشغِّل | Link |
| Queue Storage |
Trigger Output |
|
| RabbitMQ |
المشغِّل الناتج |
|
| SendGrid | الناتج | |
| Service Bus |
المشغِّل الناتج |
|
| Azure SignalR Service |
المشغِّل الادخال الناتج |
|
| Table Storage |
Input Output |
|
| الموقت | المشغِّل | |
| Twilio | الناتج |
تعتمد التعليمات البرمجية الملزمة ل Python على إصدار طراز Python.
| الخدمة | امثله | العينات |
|---|---|---|
| Blob Storage |
Trigger Input Output |
Link |
| Azure Cosmos DB |
المشغِّل الادخال الناتج |
Link |
| Azure Data Explorer |
Input Output |
|
| Azure SQL |
Trigger Input Output |
Link |
| شبكة الأحداث |
المشغِّل الناتج |
|
| مراكز الأحداث |
المشغِّل الناتج |
|
| IoT Hub |
المشغِّل الناتج |
|
| HTTP | المشغِّل | Link |
| Queue Storage |
Trigger Output |
|
| RabbitMQ |
المشغِّل الناتج |
|
| SendGrid | الناتج | |
| Service Bus |
المشغِّل الناتج |
Link |
| Azure SignalR Service |
المشغِّل الادخال الناتج |
|
| Table Storage |
Input Output |
|
| الموقت | المشغِّل | |
| Twilio | الناتج |
Visual Studio Code
عندما تستخدم Visual Studio Code لتطوير وظيفتك وتستخدم دالة ملف function.json، يمكن لامتداد Azure Functions إضافة ربط تلقائيا إلى ملف function.json موجود. لمعرفة المزيد، راجع إضافة روابط الإدخال والإخراج.
Azure portal
عندما تطور وظائفك في Azure portal، تضيف روابط إدخال وإخراج في تبويب Integrate لدالة معينة. تتم إضافة الارتباطات الجديدة إما إلى ملف function.json أو إلى سمات الأسلوب، اعتمادا على لغتك. تعرض المقالات التالية أمثلة حول كيفية إضافة روابط إلى دالة موجودة في المدخل: