Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A RedisStreamTrigger rendszer új bejegyzéseket olvas be egy streamből, és megjeleníti ezeket az elemeket a függvénynek.
A függvényindítók rendelkezésre állásának hatóköre
| Eseményindító típusa | Azure által felügyelt Redis | Azure Cache for Redis |
|---|---|---|
| Adatfolyamok | Igen | Igen |
Fontos
Az Azure Managed Redis vagy az Azure Cache for Redis vállalati szintjeinek használatakor a 6380-6379-ös port helyett használja az 10000-s portot.
Fontos
A Redis-eseményindítók jelenleg nem támogatottak a használati terven vagy a Rugalmas kihasználtságú csomagon 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.
| Végrehajtási modell | Leírás |
|---|---|
| Izolált feldolgozói modell | A függvénykód egy külön .NET-feldolgozófolyamatban fut. A .NET és a .NET-keretrendszer támogatott verzióival használható. További információ: Útmutató a C# Azure Functions izolált feldolgozói modellben való futtatásához. |
| Folyamaton belüli modell | A függvénykód ugyanabban a folyamatban fut, mint a Functions gazdafolyamata. Csak a .NET hosszú távú támogatási (LTS) verzióit támogatja. További információ: C# osztálykódtárfüggvények fejlesztése az Azure Functions használatával. |
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);
}
}
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.jsonszármaznak a kötési adatok:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"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 | ConvertTo-Json)
Innen function.jsonszármaznak a kötési adatok:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
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.
Ez a minta ugyanazt __init__.py a fájlt használja, a kötési adatokkal együtt a function.json fájlban.
A fájl a __init__.py következő:
import logging
def main(entry: str):
logging.info(entry)
Innen function.jsonszármaznak a kötési adatok:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Attribútumok
| Paraméterek | 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. | Igen | |
PollingIntervalInMs |
Milyen gyakran lehet lekérdezni a Redis-kiszolgálót ezredmásodpercben. | Választható | 1000 |
MessagesPerWorker |
Az egyes függvények feldolgozóinak feldolgozandó üzenetek száma. Annak meghatározására szolgál, hogy a függvény hány feldolgozóra legyen skálázva. | Választható | 100 |
Count |
A Redisből egyszerre lekérendő elemek száma. | Választható | 10 |
DeleteAfterProcess |
Azt jelzi, hogy a függvény a feldolgozás után törli-e a streambejegyzéseket. | Választható | false |
Jegyzetek
| Paraméter | Leírás | Kötelező | Alapértelmezett |
|---|---|---|---|
name |
entry |
Igen | |
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. | Igen | |
pollingIntervalInMs |
A Redis lekérdezésének gyakorisága ezredmásodpercben. | Választható | 1000 |
messagesPerWorker |
Az egyes függvények feldolgozóinak feldolgozandó üzenetek száma. Azt határozza meg, hogy a függvény hány feldolgozóra legyen skálázva. | Választható | 100 |
count |
A Redisből egyszerre beolvasandó bejegyzések száma. A bejegyzések feldolgozása párhuzamosan történik. | Választható | 10 |
deleteAfterProcess |
Azt határozza meg, hogy törli-e a streambejegyzéseket a függvény futtatása után. | Választható | false |
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ágai | Leírás | Kötelező | Alapértelmezett |
|---|---|---|---|
type |
Igen | ||
deleteAfterProcess |
Választható | false |
|
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. | Igen | |
pollingIntervalInMs |
A Redis lekérdezésének gyakorisága ezredmásodpercben. | Választható | 1000 |
messagesPerWorker |
(nem kötelező) Az egyes függvények feldolgozóinak feldolgozandó üzenetek száma. Annak meghatározására szolgál, hogy a függvény hány feldolgozót skálázjon | Választható | 100 |
count |
A Redisből egyszerre beolvasandó bejegyzések száma. Ezek feldolgozása párhuzamosan történik. | Választható | 10 |
name |
Igen | ||
direction |
Igen |
A teljes példákért tekintse meg a Példa szakaszt.
Használat
Az RedisStreamTrigger Azure-függvény beolvassa az új bejegyzéseket egy streamből, és megjeleníti ezeket a bejegyzéseket a függvénynek.
Az eseményindító konfigurálható rögzített időközönként kérdezi le a Redist, és a stream elemeinek olvasására használható XREADGROUP .
A függvények összes példányának fogyasztói csoportja a függvény neve, SimpleStreamTrigger vagyis a StreamTrigger-minta neve.
Minden függvénypéldány egy véletlenszerű GUID azonosítót használ vagy WEBSITE_INSTANCE_ID generál a csoporton belüli fogyasztói névként annak érdekében, hogy a függvény kibővített példányai ne olvassák be ugyanazokat az üzeneteket a streamből.
| 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. |