ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
عند إنشاء دالة، تتم إضافة تعليمة برمجية مشغل خاصة باللغة في مشروعك من مجموعة من قوالب المشغل. إذا كنت تريد توصيل الدالة بخدمات أخرى باستخدام روابط الإدخال أو الإخراج، يجب عليك إضافة تعريفات ربط محددة في الدالة. راجع مشغلات Azure Functions ومفاهيم الربط لمعرفة المزيد.
التطوير المحلي
عند تطوير الدالات محليا، تحتاج إلى تحديث التعليمات البرمجية للدالة لإضافة روابط. بالنسبة للغات التي تستخدم function.json، يوفر Visual Studio Code أدوات لإضافة روابط إلى دالة.
إضافة روابط يدويا استنادا إلى الأمثلة
عند إضافة ربط إلى دالة موجودة، تحتاج إلى إضافة سمات خاصة بالربط إلى تعريف الدالة في التعليمات البرمجية.
عند إضافة ربط إلى دالة موجودة، تحتاج إلى إضافة تعليقات توضيحية خاصة بالربط إلى تعريف الدالة في التعليمات البرمجية.
عند إضافة ربط إلى دالة موجودة، تحتاج إلى تحديث التعليمات البرمجية للدالة وإضافة تعريف إلى ملف التكوين function.json.
عند إضافة ربط إلى دالة موجودة، تحتاج إلى تحديث تعريف الدالة، اعتمادا على النموذج الخاص بك:
يوضح المثال التالي تعريف الدالة بعد إضافة ربط إخراج Queue Storage إلى دالة HTTP المشغلة:
نظرا لأن الدالة التي تم تشغيلها من قبل HTTP تقوم أيضا بإرجاع استجابة HTTP، ترجع الدالة كائنا MultiResponse
، والذي يمثل كلا من إخراج HTTP وقوائم الانتظار.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
هذا المثال هو تعريف MultiResponse
العنصر الذي يتضمن ربط الإخراج:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
عند تطبيق هذا المثال على مشروعك الخاص، قد تحتاج إلى التغيير HttpRequest
إلى HttpRequestData
وإلى IActionResult
HttpResponseData
، اعتمادا على ما إذا كنت تستخدم ASP.NET التكامل الأساسي أم لا.
يتم إرسال الرسائل إلى قائمة الانتظار عند اكتمال الدالة. تعتمد الطريقة التي تحدد بها ربط الإخراج على نموذج العملية. لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
@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 الخاص بك. لمزيد من المعلومات، بما في ذلك الارتباطات إلى مثال التعليمات البرمجية للربط التي يمكنك الرجوع إليها، راجع إضافة روابط إلى دالة.
استخدم الجدول التالي للبحث عن أمثلة على أنواع روابط معينة يمكنك استخدامها لإرشادك في تحديث دالة موجودة. أولاً، قم باختيار علامة التبويب اللغة التي تتوافق مع المشروع.
تعتمد التعليمات البرمجية الملزمة ل C# على نموذج العملية المحدد.
الخدمة | امثله | العينات |
---|---|---|
مساحة تخزين Blob |
المشغِّل الادخال الناتج |
رابط |
Azure Cosmos DB |
المشغِّل الادخال الناتج |
رابط |
Azure Data Explorer (Kusto) |
الادخال الناتج |
رابط |
و Azure SQL |
المشغِّل الادخال الناتج |
رابط |
شبكة الأحداث |
المشغِّل الناتج |
رابط |
مراكز الأحداث |
المشغِّل الناتج |
|
مركز IoT |
المشغِّل الناتج |
|
HTTP | المشغِّل | رابط |
تخزين قائمة الانتظار |
المشغِّل الناتج |
رابط |
RabbitMQ |
المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة |
المشغِّل الناتج |
رابط |
سيجنالار |
المشغِّل الادخال الناتج |
|
تخزين الجداول |
الادخال الناتج |
|
الموقت | المشغِّل | رابط |
Twilio | الناتج | رابط |
الخدمة | امثله | العينات |
---|---|---|
مساحة تخزين Blob |
المشغِّل الادخال الناتج |
رابط |
Azure Cosmos DB |
المشغِّل الادخال الناتج |
رابط |
Azure Data Explorer (Kusto) |
الادخال الناتج |
رابط |
و Azure SQL |
المشغِّل الادخال الناتج |
|
شبكة الأحداث |
المشغِّل الناتج |
رابط |
مراكز الأحداث |
المشغِّل الناتج |
|
مركز IoT |
المشغِّل الناتج |
|
HTTP | المشغِّل | رابط |
تخزين قائمة الانتظار |
المشغِّل الناتج |
رابط |
RabbitMQ |
المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة |
المشغِّل الناتج |
رابط |
سيجنالار |
المشغِّل الادخال الناتج |
|
تخزين الجداول |
الادخال الناتج |
|
الموقت | المشغِّل | رابط |
Twilio | الناتج | رابط |
الخدمة | امثله | العينات |
---|---|---|
مساحة تخزين Blob |
المشغِّل الادخال الناتج |
رابط |
Azure Cosmos DB |
المشغِّل الادخال الناتج |
رابط |
Azure Data Explorer (Kusto) |
الادخال الناتج |
|
و Azure SQL |
المشغِّل الادخال الناتج |
رابط |
شبكة الأحداث |
المشغِّل الناتج |
رابط |
مراكز الأحداث |
المشغِّل الناتج |
|
مركز IoT |
المشغِّل الناتج |
|
HTTP | المشغِّل | رابط |
تخزين قائمة الانتظار |
المشغِّل الناتج |
رابط |
RabbitMQ |
المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة |
المشغِّل الناتج |
رابط |
سيجنالار |
المشغِّل الادخال الناتج |
|
تخزين الجداول |
الادخال الناتج |
|
الموقت | المشغِّل | رابط |
Twilio | الناتج | رابط |
الخدمة | امثله | العينات |
---|---|---|
مساحة تخزين Blob |
المشغِّل الادخال الناتج |
رابط |
Azure Cosmos DB |
المشغِّل الادخال الناتج |
رابط |
و Azure SQL |
المشغِّل الادخال الناتج |
|
شبكة الأحداث |
المشغِّل الناتج |
رابط |
مراكز الأحداث |
المشغِّل الناتج |
|
مركز IoT |
المشغِّل الناتج |
|
HTTP | المشغِّل | رابط |
تخزين قائمة الانتظار |
المشغِّل الناتج |
رابط |
RabbitMQ |
المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة |
المشغِّل الناتج |
رابط |
سيجنالار |
المشغِّل الادخال الناتج |
|
تخزين الجداول |
الادخال الناتج |
|
الموقت | المشغِّل | رابط |
Twilio | الناتج | رابط |
تعتمد التعليمات البرمجية الملزمة ل Python على إصدار طراز Python.
الخدمة | امثله | العينات |
---|---|---|
مساحة تخزين Blob |
المشغِّل الادخال الناتج |
رابط |
Azure Cosmos DB |
المشغِّل الادخال الناتج |
رابط |
Azure Data Explorer (Kusto) |
الادخال الناتج |
|
و Azure SQL |
المشغِّل الادخال الناتج |
رابط |
شبكة الأحداث |
المشغِّل الناتج |
رابط |
مراكز الأحداث |
المشغِّل الناتج |
|
مركز IoT |
المشغِّل الناتج |
|
HTTP | المشغِّل | رابط |
تخزين قائمة الانتظار |
المشغِّل الناتج |
رابط |
RabbitMQ |
المشغِّل الناتج |
|
SendGrid | الناتج | |
ناقل الخدمة |
المشغِّل الناتج |
رابط |
سيجنالار |
المشغِّل الادخال الناتج |
|
تخزين الجداول |
الادخال الناتج |
|
الموقت | المشغِّل | رابط |
Twilio | الناتج | رابط |
تعليمة Visual Studio برمجية
عند استخدام Visual Studio Code لتطوير دالتك وتستخدم الدالة ملف function.json، يمكن لملحق Azure Functions إضافة ربط تلقائيا إلى ملف function.json موجود. لمعرفة المزيد، راجع إضافة روابط الإدخال والإخراج.
مدخل Azure
عند تطوير وظائفك في مدخل Microsoft Azure، يمكنك إضافة روابط الإدخال والإخراج في علامة التبويب تكامل لدالة معينة. تتم إضافة الارتباطات الجديدة إما إلى ملف function.json أو إلى سمات الأسلوب، اعتمادا على لغتك. تعرض المقالات التالية أمثلة حول كيفية إضافة روابط إلى دالة موجودة في المدخل: