RedisListTrigger لوظائف Azure
RedisListTrigger
ينبثق العناصر الجديدة من قائمة ويسطح هذه الإدخالات إلى الدالة.
لمزيد من المعلومات حول مشغلات وروابط Azure Cache for Redis، ملحق Redis لوظائف Azure.
نطاق توفر مشغلات الوظائف
المستوى | أساسي | قياسي، متميز | Enterprise وEnterprise Flash |
---|---|---|---|
القوائم | نعم | نعم | نعم |
هام
مشغلات Redis غير مدعومة حاليا للوظائف التي تعمل في خطة الاستهلاك.
هام
نموذج Python v2 للوظائف غير مدعوم حتى الآن بواسطة ملحق Azure Cache for Redis. لمزيد من التفاصيل حول كيفية عمل نموذج v2، راجع دليل مطور Azure Functions Python.
مثال
هام
بالنسبة لوظائف .NET، يوصى باستخدام نموذج العامل المعزول عبر النموذج قيد المعالجة. للمقارنة بين نماذج العامل قيد المعالجة والنموذج المعزول ، راجع الاختلافات بين نموذج العامل المعزول والنموذج قيد المعالجة ل .NET على Azure Functions.
يستقصي النموذج التالي المفتاح listTest
.:
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.Functions.Worker.Extensions.Redis.Samples.RedisListTrigger
{
public class SimpleListTrigger
{
private readonly ILogger<SimpleListTrigger> logger;
public SimpleListTrigger(ILogger<SimpleListTrigger> logger)
{
this.logger = logger;
}
[Function(nameof(SimpleListTrigger))]
public void Run(
[RedisListTrigger(Common.connectionStringSetting, "listTest")] string entry)
{
logger.LogInformation(entry);
}
}
}
يستقصي النموذج التالي المفتاح listTest
في مثيل localhost Redis في redisLocalhost
:
package com.function.RedisListTrigger;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.redis.annotation.*;
public class SimpleListTrigger {
@FunctionName("SimpleListTrigger")
public void run(
@RedisListTrigger(
name = "req",
connection = "redisConnectionString",
key = "listTest",
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": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
يستخدم هذا النموذج نفس run.ps1
الملف، مع بيانات الربط في function.json
الملف.
run.ps1
إليك الملف:
param($entry, $TriggerMetadata)
Write-Host $entry
من function.json
، إليك بيانات الربط:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
يستخدم هذا النموذج نفس __init__.py
الملف، مع بيانات الربط في function.json
الملف.
يتطلب منك نموذج برمجة Python v1 تعريف الروابط في ملف function.json منفصل في مجلد الدالة. لمزيد من المعلومات، راجع دليل مطور Python.
__init__.py
إليك الملف:
import logging
def main(entry: str):
logging.info(entry)
من function.json
، إليك بيانات الربط:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
السمات
المعلمة | الوصف | مطلوبة | افتراضي |
---|---|---|---|
Connection |
اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال ذاكرة التخزين المؤقت، مثل:<cacheName>.redis.cache.windows.net:6380,password... |
نعم | |
Key |
مفتاح للقراءة منه. يمكن حل هذا الحقل باستخدام INameResolver . |
نعم | |
PollingIntervalInMs |
كم مرة يتم فيها استقصاء Redis بالمللي ثانية. | اختياري | 1000 |
MessagesPerWorker |
كم عدد الرسائل التي يجب أن يعالجها كل مثيل دالة. يستخدم لتحديد عدد المثيلات التي يجب أن تقوم الدالة بالتحجيم إليها. | اختياري | 100 |
Count |
عدد الإدخالات التي يجب بوبها من Redis في وقت واحد. تتم معالجة الإدخالات بالتوازي. معتمد فقط على Redis 6.2+ باستخدام الوسيطة COUNT في LPOP و RPOP . |
اختياري | 10 |
ListPopFromBeginning |
تحديد ما إذا كان يجب نوافذ الإدخالات من البداية باستخدام LPOP ، أو النوافذ المنبثقة من النهاية باستخدام RPOP . |
اختياري | true |
تعليقات توضيحية
المعلمة | الوصف | مطلوبة | افتراضي |
---|---|---|---|
name |
"إدخال" | ||
connection |
اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال ذاكرة التخزين المؤقت، مثل:<cacheName>.redis.cache.windows.net:6380,password... |
نعم | |
key |
يمكن حل هذا الحقل باستخدام INameResolver. | نعم | |
pollingIntervalInMs |
كم مرة يتم فيها استقصاء Redis بالمللي ثانية. | اختياري | 1000 |
messagesPerWorker |
كم عدد الرسائل التي يجب أن يعالجها كل مثيل دالة. يستخدم لتحديد عدد المثيلات التي يجب أن تقوم الدالة بالتحجيم إليها. | اختياري | 100 |
count |
عدد الإدخالات المراد قراءتها من Redis في وقت واحد. تتم معالجة هذه بالتوازي. | اختياري | 10 |
listPopFromBeginning |
ما إذا كنت تريد حذف إدخالات الدفق بعد تشغيل الدالة. | نعم | true |
التكوين
يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.
خاصية function.json | الوصف | اختياري | الإعداد الافتراضي |
---|---|---|---|
type |
اسم المشغل. | لا | |
listPopFromBeginning |
ما إذا كنت تريد حذف إدخالات الدفق بعد تشغيل الدالة. تعيين إلى true . |
نعم | true |
connection |
اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال ذاكرة التخزين المؤقت، مثل:<cacheName>.redis.cache.windows.net:6380,password... |
لا | |
key |
يمكن حل هذا الحقل باستخدام INameResolver . |
لا | |
pollingIntervalInMs |
كم مرة يتم فيها استقصاء Redis بالمللي ثانية. | نعم | 1000 |
messagesPerWorker |
كم عدد الرسائل التي يجب أن يعالجها كل مثيل دالة. يستخدم لتحديد عدد المثيلات التي يجب أن تقوم الدالة بالتحجيم إليها. | نعم | 100 |
count |
عدد الإدخالات التي يجب قراءتها من ذاكرة التخزين المؤقت في وقت واحد. تتم معالجة الإدخالات بالتوازي. | نعم | 10 |
name |
? | نعم | |
direction |
تعيين إلى in . |
لا |
راجع قسم Example للحصول على أمثلة كاملة.
الاستخدام
RedisListTrigger
ينبثق العناصر الجديدة من قائمة ويسطح هذه الإدخالات إلى الدالة. يقوم المشغل باستطلاع Redis في فاصل زمني ثابت قابل للتكوين، ويستخدم LPOP
RPOP
و للإدخالات المنبثقة من القوائم.
النوع | الوصف |
---|---|
byte[] |
الرسالة من القناة. |
string |
الرسالة من القناة. |
Custom |
يستخدم المشغل تسلسل Json.NET لتعيين الرسالة من القناة string من إلى نوع مخصص. |