RedisListTrigger for Azure Functions
A RedisListTrigger
rendszer új elemeket jelenít meg egy listából, és megjeleníti ezeket a bejegyzéseket a függvényben.
Az Azure Cache for Redis eseményindítóiról és kötéseiről az Azure Functions Redis-bővítménye nyújt további információt.
A függvényindítók rendelkezésre állásának hatóköre
Szint | Alap | Standard, Prémium | Enterprise, Enterprise Flash |
---|---|---|---|
Listák | Igen | Igen | Igen |
Fontos
A Redis-eseményindítók jelenleg nem támogatottak a Használat csomagban futó függvények esetében.
Fontos
A Functions Node.js v4-modelljét az Azure Cache for Redis bővítmény még nem támogatja. A v4-modell működésével kapcsolatos további információkért tekintse meg az Azure Functions Node.js fejlesztői útmutatóját. A v3 és a v4 közötti különbségekről a migrálási útmutatóban olvashat bővebben.
Fontos
A Functions Python v2-modelljét még nem támogatja az Azure Cache for Redis bővítmény. A v2-modell működésével kapcsolatos további részletekért tekintse meg az Azure Functions Python fejlesztői útmutatóját.
Példa
Fontos
A .NET-függvények esetében az izolált feldolgozói modell használata javasolt a folyamaton belüli modellen keresztül. A folyamaton belüli és az izolált feldolgozói modellek összehasonlításához tekintse meg az izolált feldolgozói modell és az Azure Functions .NET-hez készült folyamaton belüli modellje közötti különbségeket.
A következő minta lekérdezi a kulcsot 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);
}
}
}
Az alábbi minta egy localhost Redis-példány kulcsát listTest
kérdezi le a következő helyen 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);
}
}
Ez a minta ugyanazt index.js
a fájlt használja, a kötési adatokkal együtt a function.json
fájlban.
A fájl a index.js
következő:
module.exports = async function (context, entry) {
context.log(entry);
}
Innen function.json
származnak a kötési adatok:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
Ez a minta ugyanazt run.ps1
a fájlt használja, a kötési adatokkal együtt a function.json
fájlban.
A fájl a run.ps1
következő:
param($entry, $TriggerMetadata)
Write-Host $entry
Innen function.json
származnak a kötési adatok:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
Ez a minta ugyanazt __init__.py
a fájlt használja, a kötési adatokkal együtt a function.json
fájlban.
A Python v1 programozási modell megköveteli, hogy a függvénymappában egy külön function.json fájlban definiáljon kötéseket. További információt a Python fejlesztői útmutatójában talál.
A fájl a __init__.py
következő:
import logging
def main(entry: str):
logging.info(entry)
Innen function.json
származnak a kötési adatok:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Attribútumok
Paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
Connection |
A gyorsítótárat kapcsolati sztring tartalmazó alkalmazásbeállítás neve, például:<cacheName>.redis.cache.windows.net:6380,password... |
Igen | |
Key |
A kulcs, amelyből olvasni szeretne. Ez a mező a következővel INameResolver oldható fel: . |
Igen | |
PollingIntervalInMs |
A Redis lekérdezésének gyakorisága ezredmásodpercben. | Választható | 1000 |
MessagesPerWorker |
Hány üzenetet kell feldolgoznia az egyes függvénypéldányok számára. Annak meghatározására szolgál, hogy a függvény hány példányra legyen skálázva. | Választható | 100 |
Count |
A Redisből egyszerre előugró bejegyzések száma. A bejegyzések feldolgozása párhuzamosan történik. Csak a Redis 6.2+-ban támogatott az argumentum LPOP RPOP és a COUNT . |
Választható | 10 |
ListPopFromBeginning |
Azt határozza meg, hogy az elejétől LPOP kezdve a kezdő vagy a végből RPOP származó előugró bejegyzéseket használja-e. |
Választható | true |
Jegyzetek
Paraméter | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
name |
"bejegyzés" | ||
connection |
A gyorsítótárat kapcsolati sztring tartalmazó alkalmazásbeállítás neve, például:<cacheName>.redis.cache.windows.net:6380,password... |
Igen | |
key |
Ez a mező az INameResolver használatával oldható fel. | Igen | |
pollingIntervalInMs |
A Redis lekérdezésének gyakorisága ezredmásodpercben. | Választható | 1000 |
messagesPerWorker |
Hány üzenetet kell feldolgoznia az egyes függvénypéldányok számára. Annak meghatározására szolgál, hogy a függvény hány példányra legyen skálázva. | Választható | 100 |
count |
A Redisből egyszerre beolvasandó bejegyzések száma. Ezek feldolgozása párhuzamosan történik. | Választható | 10 |
listPopFromBeginning |
Azt határozza meg, hogy törli-e a streambejegyzéseket a függvény futtatása után. | Igen | true |
Konfiguráció
Az alábbi táblázat a function.json fájlban beállított kötéskonfigurációs tulajdonságokat ismerteti.
function.json tulajdonság | Leírás | Lehetséges | Alapértelmezett |
---|---|---|---|
type |
Az eseményindító neve. | Nem | |
listPopFromBeginning |
Azt határozza meg, hogy törli-e a streambejegyzéseket a függvény futtatása után. Állítsa true értékre. |
Igen | true |
connection |
A gyorsítótárat kapcsolati sztring tartalmazó alkalmazásbeállítás neve, például:<cacheName>.redis.cache.windows.net:6380,password... |
Nem | |
key |
Ez a mező a következővel INameResolver oldható fel: . |
Nem | |
pollingIntervalInMs |
A Redis lekérdezésének gyakorisága ezredmásodpercben. | Igen | 1000 |
messagesPerWorker |
Hány üzenetet kell feldolgoznia az egyes függvénypéldányok számára. Annak meghatározására szolgál, hogy a függvény hány példányra legyen skálázva. | Igen | 100 |
count |
A gyorsítótárból egyszerre beolvasandó bejegyzések száma. A bejegyzések feldolgozása párhuzamosan történik. | Igen | 10 |
name |
? | Igen | |
direction |
Állítsa in értékre. |
Nem |
A teljes példákért tekintse meg a Példa szakaszt.
Használat
A RedisListTrigger
rendszer új elemeket jelenít meg egy listából, és megjeleníti ezeket a bejegyzéseket a függvényben. Az eseményindító konfigurálható, rögzített időközönként kérdezi le a Redist, és a listákból származó bejegyzéseket használja LPOP
és RPOP
jeleníti meg.
Típus | Leírás |
---|---|
byte[] |
A csatorna üzenete. |
string |
A csatorna üzenete. |
Custom |
Az eseményindító Json.NET szerializálással képezi le a csatorna üzenetét egy string egyéni típusba. |