مشغل Dapr Topic ل Azure Functions
يمكن تشغيل Azure Functions على اشتراك موضوع Dapr باستخدام أحداث Dapr التالية.
للحصول على معلومات حول تفاصيل الإعداد والتكوين لملحق Dapr، راجع نظرة عامة على ملحق Dapr.
مثال
يمكن إنشاء وظيفة #C باستخدام أحد أوضاع C# التالية:
نموذج التنفيذ | الوصف |
---|---|
نموذج عامل معزول | تعمل تعليمة دالتك البرمجية في عملية عامل .NET منفصلة. استخدم مع الإصدارات المدعومة من .NET و.NET Framework. لمعرفة المزيد، راجع تطوير وظائف معالجة العامل المعزولة .NET. |
نموذج قيد المعالجة | تعمل تعليمة دالتك البرمجية في نفس العملية مثل عملية مضيف الدالات. يدعم إصدارات الدعم طويل الأجل (LTS) فقط من .NET. لمعرفة المزيد، راجع تطوير وظائف مكتبة فئة .NET. |
[FunctionName("TransferEventBetweenTopics")]
public static void Run(
[DaprTopicTrigger("%PubSubName%", Topic = "A")] CloudEvent subEvent,
[DaprPublish(PubSubName = "%PubSubName%", Topic = "B")] out DaprPubSubEvent pubEvent,
ILogger log)
{
log.LogInformation("C# function processed a TransferEventBetweenTopics request from the Dapr Runtime.");
pubEvent = new DaprPubSubEvent("Transfer from Topic A: " + subEvent.Data);
}
إليك رمز Java للاشتراك في موضوع باستخدام مشغل Dapr Topic:
@FunctionName("PrintTopicMessage")
public String run(
@DaprTopicTrigger(
pubSubName = "%PubSubName%",
topic = "B")
String payload,
final ExecutionContext context) throws JsonProcessingException {
Logger logger = context.getLogger();
logger.info("Java function processed a PrintTopicMessage request from the Dapr Runtime.");
استخدم الكائن app
لتسجيل daprTopicTrigger
:
const { app, trigger } = require('@azure/functions');
app.generic('TransferEventBetweenTopics', {
trigger: trigger.generic({
type: 'daprTopicTrigger',
name: "subEvent",
pubsubname: "%PubSubName%",
topic: "A"
}),
return: daprPublishOutput,
handler: async (request, context) => {
context.log("Node function processed a TransferEventBetweenTopics request from the Dapr Runtime.");
context.log(context.triggerMetadata.subEvent.data);
return { payload: context.triggerMetadata.subEvent.data };
}
});
تظهر الأمثلة التالية مشغلات Dapr في ملف function.json ورمز PowerShell الذي يستخدم هذه الروابط.
فيما يلي ملف function.json ل daprTopicTrigger
:
{
"bindings": [
{
"type": "daprTopicTrigger",
"pubsubname": "%PubSubName%",
"topic": "B",
"name": "subEvent",
"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 (
$subEvent
)
Write-Host "PowerShell function processed a PrintTopicMessage request from the Dapr Runtime."
# Convert the object to a JSON-formatted string with ConvertTo-Json
$jsonString = $subEvent["data"] | ConvertTo-Json -Compress
Write-Host "Topic B received a message: $jsonString"
يظهر المثال التالي مشغل Dapr Topic، والذي يستخدم نموذج برمجة v2 Python. لاستخدام في التعليمات البرمجية daprTopicTrigger
لتطبيق دالة Python:
import logging
import json
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="PrintTopicMessage")
@app.dapr_topic_trigger(arg_name="subEvent", pub_sub_name="%PubSubName%", topic="B", route="B")
def main(subEvent) -> None:
logging.info('Python function processed a PrintTopicMessage request from the Dapr Runtime.')
subEvent_json = json.loads(subEvent)
logging.info("Topic B received a message: " + subEvent_json["data"])
السمات
في النموذج قيد المعالجة، استخدم DaprTopicTrigger
لتشغيل ربط النشر/الفرعي ل Dapr، والذي يدعم الخصائص التالية.
المعلمة | الوصف |
---|---|
PubSubName | اسم Dapr pub/sub. |
الموضوع | اسم موضوع Dapr. |
تعليقات توضيحية
يتيح لك التعليق التوضيحي DaprTopicTrigger
إنشاء دالة يتم تشغيلها عند تلقي موضوع ما.
العنصر | الوصف |
---|---|
pubSubName | اسم Dapr pub/sub. |
الموضوع | اسم موضوع Dapr. |
التكوين
يوضح الجدول التالي خصائص تكوين الربط التي قمت بتعيينها في التعليمات البرمجية.
الخاصية | الوصف |
---|---|
pubsubname | اسم نوع المكون Dapr pub/sub. |
الموضوع | اسم الموضوع. |
يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.
خاصية function.json | الوصف |
---|---|
pubsubname | اسم نوع المكون Dapr pub/sub. |
الموضوع | اسم الموضوع. |
راجع قسم Example للحصول على أمثلة كاملة.
الاستخدام
لاستخدام مشغل موضوع Dapr، ابدأ بإعداد مكون Dapr pub/sub. يمكنك معرفة المزيد حول المكون الذي يجب استخدامه وكيفية إعداده في وثائق Dapr الرسمية.
لاستخدام daprTopicTrigger
في Python v2، قم بإعداد مشروعك باستخدام التبعيات الصحيحة.
إنشاء بيئة ظاهرية وتنشيطها.
في الملف،
requirements.text
أضف السطر التالي:azure-functions==1.18.0b3
في المحطة الطرفية، قم بتثبيت مكتبة Python.
pip install -r .\requirements.txt
قم بتعديل الملف الخاص بك
local.setting.json
بالتكوين التالي:"PYTHON_ISOLATE_WORKER_DEPENDENCIES":1