إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
RedisStreamTrigger يقرأ إدخالات جديدة من دفق ويسطح هذه العناصر إلى الوظيفة.
نطاق توفر مشغلات الوظائف
| نوع المشغل | Azure Managed Redis | Azure Cache for Redis |
|---|---|---|
| عمليات النقل المستمر | نعم | نعم |
هام
عند استخدام Azure Managed Redis أو مستويات Enterprise Azure Cache for Redis، استخدم المنفذ 10000 بدلا من المنفذ 6380 أو 6379.
هام
مشغلات Redis غير مدعومة حاليا للوظائف التي تعمل على خطة استهلاك أو خطة استهلاك Flex.
هام
لم يتم دعم نموذج Node.js v4 للوظائف بعد بواسطة ملحق Azure Cache for Redis. لمزيد من التفاصيل حول كيفية عمل نموذج v4، راجع دليل المطور Azure Functions Node.js. لمعرفة المزيد حول الاختلافات بين v3 وv4، راجع دليل الترحيل.
هام
نموذج Python v2 للوظائف غير مدعوم بعد من قبل ملحق Azure Cache for Redis. لمزيد من التفاصيل حول كيفية عمل نموذج v2، راجع دليل المطور Azure Functions Python.
مثال
هام
بالنسبة للدالات .NET، يوصى باستخدام نموذج العامل عبر نموذج in-process. للمقارنة بين -process ونماذج العامل، راجع الاختلافات بين نموذج العامل ونموذج in-process .NET على Azure Functions.
| نموذج التنفيذ | الوصف |
|---|---|
| نموذج عامل معزول | يتم تشغيل التعليمات البرمجية للدالة في عملية عامل .NET منفصلة. استخدم مع إصدارات المعتمدة من .NET و .NET Framework. لمعرفة المزيد، راجع Guide لتشغيل C# Azure Functions في نموذج العامل المعزول. |
| نموذج قيد المعالجة | تعمل تعليمة دالتك البرمجية في نفس العملية مثل عملية مضيف الدالات. يدعم إصدارات Long Term Support (LTS) فقط من .NET. لمعرفة المزيد، راجع تطوير وظائف مكتبة فئة C# باستخدام Azure Functions. |
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 |
اسم إعداد application الذي يحتوي على connection string ذاكرة التخزين المؤقت، مثل: <cacheName>.redis.cache.windows.net:6380,password... |
نعم | |
Key |
مفتاح للقراءة منه. | نعم | |
PollingIntervalInMs |
عدد المرات التي يتم فيها استقصاء خادم Redis بالمللي ثانية. | اختياري | 1000 |
MessagesPerWorker |
عدد الرسائل التي يجب على كل عامل وظائف معالجتها. يستخدم لتحديد عدد العمال الذين يجب أن تتدرج الدالة إليه. | اختياري | 100 |
Count |
عدد العناصر التي يجب سحبها من Redis في وقت واحد. | اختياري | 10 |
DeleteAfterProcess |
يشير إلى ما إذا كانت الدالة تحذف إدخالات الدفق بعد المعالجة. | اختياري | false |
تعليقات توضيحية
| المعلمة | الوصف | مطلوبة | افتراضي |
|---|---|---|---|
name |
entry |
نعم | |
connection |
اسم إعداد application الذي يحتوي على connection string ذاكرة التخزين المؤقت، مثل: <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 |
اسم إعداد application الذي يحتوي على connection string ذاكرة التخزين المؤقت، مثل: <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 إلى نوع مخصص. |