RedisStreamTrigger لوظائف Azure
RedisStreamTrigger
يقرأ إدخالات جديدة من دفق ويسطح هذه العناصر إلى الوظيفة.
المستوى | أساسي | قياسي، متميز | Enterprise وEnterprise Flash |
---|---|---|---|
عمليات النقل المستمر | نعم | نعم | نعم |
هام
مشغلات Redis غير مدعومة حاليا للوظائف التي تعمل في خطة الاستهلاك.
هام
نموذج Python v2 للوظائف غير مدعوم حتى الآن بواسطة ملحق Azure Cache for Redis. لمزيد من التفاصيل حول كيفية عمل نموذج v2، راجع دليل مطور Azure Functions Python.
مثال
هام
بالنسبة لوظائف .NET، يوصى باستخدام نموذج العامل المعزول عبر النموذج قيد المعالجة. للمقارنة بين نماذج العامل قيد المعالجة والنموذج المعزول ، راجع الاختلافات بين نموذج العامل المعزول والنموذج قيد المعالجة ل .NET على Azure Functions.
نموذج التنفيذ | الوصف |
---|---|
نموذج عامل معزول | تعمل تعليمة دالتك البرمجية في عملية عامل .NET منفصلة. استخدم مع الإصدارات المدعومة من .NET و.NET Framework. لمعرفة المزيد، راجع تطوير وظائف معالجة العامل المعزولة .NET. |
نموذج قيد المعالجة | تعمل تعليمة دالتك البرمجية في نفس العملية مثل عملية مضيف الدالات. يدعم إصدارات الدعم طويل الأجل (LTS) فقط من .NET. لمعرفة المزيد، راجع تطوير وظائف مكتبة فئة .NET. |
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.Functions.Worker.Extensions.Redis.Samples.RedisStreamTrigger
{
internal class SimpleStreamTrigger
{
private readonly ILogger<SimpleStreamTrigger> logger;
public SimpleStreamTrigger(ILogger<SimpleStreamTrigger> logger)
{
this.logger = logger;
}
[Function(nameof(SimpleStreamTrigger))]
public void Run(
[RedisStreamTrigger(Common.connectionStringSetting, "streamKey")] string entry)
{
logger.LogInformation(entry);
}
}
}
package com.function.RedisStreamTrigger;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.redis.annotation.*;
public class SimpleStreamTrigger {
@FunctionName("SimpleStreamTrigger")
public void run(
@RedisStreamTrigger(
name = "req",
connection = "redisConnectionString",
key = "streamTest",
pollingIntervalInMs = 1000,
maxBatchSize = 1)
String message,
final ExecutionContext context) {
context.getLogger().info(message);
}
}
يستخدم هذا النموذج نفس index.js
الملف، مع بيانات الربط في function.json
الملف.
index.js
إليك الملف:
module.exports = async function (context, entry) {
context.log(entry);
}
من function.json
، إليك بيانات الربط:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
يستخدم هذا النموذج نفس run.ps1
الملف، مع بيانات الربط في function.json
الملف.
run.ps1
إليك الملف:
param($entry, $TriggerMetadata)
Write-Host ($entry | ConvertTo-Json)
من function.json
، إليك بيانات الربط:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
يتطلب منك نموذج برمجة Python v1 تعريف الروابط في ملف function.json منفصل في مجلد الدالة. لمزيد من المعلومات، راجع دليل مطور Python.
يستخدم هذا النموذج نفس __init__.py
الملف، مع بيانات الربط في function.json
الملف.
__init__.py
إليك الملف:
import logging
def main(entry: str):
logging.info(entry)
من function.json
، إليك بيانات الربط:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
السمات
المعلمات | الوصف | مطلوبة | افتراضي |
---|---|---|---|
Connection |
اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال ذاكرة التخزين المؤقت، مثل:<cacheName>.redis.cache.windows.net:6380,password... |
نعم | |
Key |
مفتاح للقراءة منه. | نعم | |
PollingIntervalInMs |
عدد المرات التي يتم فيها استقصاء خادم Redis بالمللي ثانية. | اختياري | 1000 |
MessagesPerWorker |
عدد الرسائل التي يجب على كل عامل وظائف معالجتها. يستخدم لتحديد عدد العمال الذين يجب أن تتدرج الدالة إليه. | اختياري | 100 |
Count |
عدد العناصر التي يجب سحبها من Redis في وقت واحد. | اختياري | 10 |
DeleteAfterProcess |
يشير إلى ما إذا كانت الدالة تحذف إدخالات الدفق بعد المعالجة. | اختياري | false |
تعليقات توضيحية
المعلمة | الوصف | مطلوبة | Default |
---|---|---|---|
name |
entry |
نعم | |
connection |
اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال ذاكرة التخزين المؤقت، مثل:<cacheName>.redis.cache.windows.net:6380,password... |
نعم | |
key |
مفتاح للقراءة منه. | نعم | |
pollingIntervalInMs |
مدى تكرار استقصاء Redis، بالمللي ثانية. | اختياري | 1000 |
messagesPerWorker |
عدد الرسائل التي يجب على كل عامل وظائف معالجتها. يتم استخدامه لتحديد عدد العمال الذين يجب أن تتدرج الدالة إليه. | اختياري | 100 |
count |
عدد الإدخالات المراد قراءتها من Redis في وقت واحد. تتم معالجة الإدخالات بالتوازي. | اختياري | 10 |
deleteAfterProcess |
ما إذا كنت تريد حذف إدخالات الدفق بعد تشغيل الدالة. | اختياري | false |
التكوين
يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.
خصائص function.json | الوصف | مطلوبة | Default |
---|---|---|---|
type |
نعم | ||
deleteAfterProcess |
اختياري | false |
|
connection |
اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال ذاكرة التخزين المؤقت، مثل:<cacheName>.redis.cache.windows.net:6380,password... |
نعم | |
key |
المفتاح للقراءة منه. | نعم | |
pollingIntervalInMs |
كم مرة يتم فيها استقصاء Redis بالمللي ثانية. | اختياري | 1000 |
messagesPerWorker |
(اختياري) عدد الرسائل التي يجب على كل عامل وظائف معالجتها. يستخدم لتحديد عدد العمال الذين يجب أن تقوم الدالة بتحجيمهم | اختياري | 100 |
count |
عدد الإدخالات المراد قراءتها من Redis في وقت واحد. تتم معالجة هذه بالتوازي. | اختياري | 10 |
name |
نعم | ||
direction |
نعم |
راجع قسم Example للحصول على أمثلة كاملة.
الاستخدام
RedisStreamTrigger
تقرأ دالة Azure إدخالات جديدة من دفق وتسطح هذه الإدخالات إلى الوظيفة.
يقوم المشغل باستطلاع Redis في فاصل زمني ثابت قابل للتكوين، ويستخدم XREADGROUP
لقراءة العناصر من الدفق.
مجموعة المستهلكين لكافة مثيلات الدالة هي اسم الدالة، أي لنموذج SimpleStreamTrigger
StreamTrigger.
يستخدم WEBSITE_INSTANCE_ID
كل مثيل دالات أو ينشئ GUID عشوائيا لاستخدامه كاسم مستهلك ضمن المجموعة للتأكد من أن مثيلات الدالة التي تم توسيع نطاقها لا تقرأ نفس الرسائل من الدفق.
النوع | الوصف |
---|---|
byte[] |
الرسالة من القناة. |
string |
الرسالة من القناة. |
Custom |
يستخدم المشغل تسلسل Json.NET لتعيين الرسالة من القناة string من إلى نوع مخصص. |
المحتوى ذو الصلة
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ