مشغل روابط إدخال Dapr لوظائف Azure
يمكن تشغيل Azure Functions على ربط إدخال Dapr باستخدام أحداث Dapr التالية.
للحصول على معلومات حول تفاصيل الإعداد والتكوين لملحق Dapr، راجع نظرة عامة على ملحق Dapr.
مثال
يمكن إنشاء وظيفة #C باستخدام أحد أوضاع C# التالية:
نموذج التنفيذ | الوصف |
---|---|
نموذج عامل معزول | تعمل تعليمة دالتك البرمجية في عملية عامل .NET منفصلة. استخدم مع الإصدارات المدعومة من .NET و.NET Framework. لمعرفة المزيد، راجع تطوير وظائف معالجة العامل المعزولة .NET. |
نموذج قيد المعالجة | تعمل تعليمة دالتك البرمجية في نفس العملية مثل عملية مضيف الدالات. يدعم إصدارات الدعم طويل الأجل (LTS) فقط من .NET. لمعرفة المزيد، راجع تطوير وظائف مكتبة فئة .NET. |
[FunctionName("ConsumeMessageFromKafka")]
public static void Run(
// Note: the value of BindingName must match the binding name in components/kafka-bindings.yaml
[DaprBindingTrigger(BindingName = "%KafkaBindingName%")] JObject triggerData,
ILogger log)
{
log.LogInformation("Hello from Kafka!");
log.LogInformation($"Trigger data: {triggerData}");
}
فيما يلي رمز Java لمشغل ربط إدخال Dapr:
@FunctionName("ConsumeMessageFromKafka")
public String run(
@DaprBindingTrigger(
bindingName = "%KafkaBindingName%")
)
استخدم الكائن app
لتسجيل daprBindingTrigger
:
const { app, trigger } = require('@azure/functions');
app.generic('ConsumeMessageFromKafka', {
trigger: trigger.generic({
type: 'daprBindingTrigger',
bindingName: "%KafkaBindingName%",
name: "triggerData"
}),
handler: async (request, context) => {
context.log("Node function processed a ConsumeMessageFromKafka request from the Dapr Runtime.");
context.log(context.triggerMetadata.triggerData)
}
});
يوضح المثال التالي مشغلات Dapr في ملف function.json ورمز PowerShell الذي يستخدم هذه الروابط.
فيما يلي ملف function.json ل daprBindingTrigger
:
{
"bindings": [
{
"type": "daprBindingTrigger",
"bindingName": "%KafkaBindingName%",
"name": "triggerData",
"direction": "in"
}
]
}
لمزيد من المعلومات حول خصائص الملف function.json ، راجع قسم التكوين .
في التعليمات البرمجية:
using namespace System
using namespace Microsoft.Azure.WebJobs
using namespace Microsoft.Extensions.Logging
using namespace Microsoft.Azure.WebJobs.Extensions.Dapr
using namespace Newtonsoft.Json.Linq
param (
$triggerData
)
Write-Host "PowerShell function processed a ConsumeMessageFromKafka request from the Dapr Runtime."
$jsonString = $triggerData | ConvertTo-Json
Write-Host "Trigger data: $jsonString"
يوضح المثال التالي مشغل ربط إدخال Dapr، والذي يستخدم نموذج برمجة v2 Python. لاستخدام في التعليمات البرمجية daprBinding
لتطبيق دالة Python:
import logging
import json
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="ConsumeMessageFromKafka")
@app.dapr_binding_trigger(arg_name="triggerData", binding_name="%KafkaBindingName%")
def main(triggerData: str) -> None:
logging.info('Python function processed a ConsumeMessageFromKafka request from the Dapr Runtime.')
logging.info('Trigger data: ' + triggerData)
السمات
في النموذج قيد المعالجة، استخدم DaprBindingTrigger
لتشغيل ربط إدخال Dapr، والذي يدعم الخصائص التالية.
المعلمة | الوصف |
---|---|
اسم الربط | اسم مشغل Dapr. إذا لم يتم تحديده، يتم استخدام اسم الدالة كاسم المشغل. |
تعليقات توضيحية
DaprBindingTrigger
يسمح لك التعليق التوضيحي بإنشاء دالة يتم تشغيلها بواسطة مكون الربط الذي أنشأته.
العنصر | الوصف |
---|---|
اسم الربط | اسم ربط Dapr. |
التكوين
يوضح الجدول التالي خصائص تكوين الربط التي قمت بتعيينها في التعليمات البرمجية.
الخاصية | الوصف |
---|---|
اسم الربط | اسم الربط. |
يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.
خاصية function.json | الوصف |
---|---|
اسم الربط | اسم الربط. |
راجع قسم Example للحصول على أمثلة كاملة.
الاستخدام
لاستخدام مشغل ربط إدخال Dapr، ابدأ بإعداد مكون ربط إدخال Dapr. يمكنك معرفة المزيد حول المكون الذي يجب استخدامه وكيفية إعداده في وثائق Dapr الرسمية.
لاستخدام daprBindingTrigger
في Python v2، قم بإعداد مشروعك باستخدام التبعيات الصحيحة.
إنشاء بيئة ظاهرية وتنشيطها.
في الملف،
requirements.text
أضف السطر التالي:azure-functions==1.18.0b3
في المحطة الطرفية، قم بتثبيت مكتبة Python.
pip install -r .\requirements.txt
قم بتعديل الملف الخاص بك
local.setting.json
بالتكوين التالي:"PYTHON_ISOLATE_WORKER_DEPENDENCIES":1