ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
RedisStreamTrigger
يقرأ إدخالات جديدة من دفق ويسطح هذه العناصر إلى الوظيفة.
نطاق توفر مشغلات الوظائف
نوع المشغل | Azure Managed Redis | ذاكرة التخزين المؤقت في Azure لـ Redis |
---|---|---|
عمليات النقل المستمر | نعم | نعم |
هام
عند استخدام Azure Managed Redis أو مستويات المؤسسة من Azure Cache for Redis، استخدم المنفذ 10000 بدلا من المنفذ 6380 أو 6379.
هام
مشغلات Redis غير مدعومة حاليا للوظائف التي تعمل في خطة الاستهلاك.
هام
نموذج Python v2 للوظائف غير مدعوم حتى الآن بواسطة ملحق Azure Cache for Redis. لمزيد من التفاصيل حول كيفية عمل نموذج v2، راجع دليل مطور Azure Functions Python.
مثال
هام
بالنسبة لوظائف .NET، يوصى باستخدام نموذج العامل المعزول عبر النموذج قيد المعالجة. للمقارنة بين نماذج العامل قيد المعالجة والنموذج المعزول ، راجع الاختلافات بين نموذج العامل المعزول والنموذج قيد المعالجة ل .NET على Azure Functions.
نموذج التنفيذ | الوصف |
---|---|
نموذج عامل معزول | تعمل تعليمة دالتك البرمجية في عملية عامل .NET منفصلة. استخدم مع الإصدارات المدعومة من .NET و.NET Framework. لمعرفة المزيد، راجع دليل لتشغيل وظائف C# Azure في نموذج العامل المعزول. |
نموذج قيد المعالجة | تعمل تعليمة دالتك البرمجية في نفس العملية مثل عملية مضيف الدالات. يدعم إصدارات الدعم طويل الأجل (LTS) فقط من .NET. لمعرفة المزيد، راجع تطوير دالات مكتبة الفئة C# باستخدام وظائف Azure. |
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 |
تعليقات توضيحية
المعلمة | الوصف | مطلوبة | افتراضي |
---|---|---|---|
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 | الوصف | مطلوبة | افتراضي |
---|---|---|---|
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 من إلى نوع مخصص. |