Connect functions to Azure services using bindings

عند إنشاء دالة، يتم إضافة كود التحفيز الخاص باللغة إلى 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 أو إلى سمات الأسلوب، اعتمادا على لغتك. تعرض المقالات التالية أمثلة حول كيفية إضافة روابط إلى دالة موجودة في المدخل:

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