RedisListTrigger pro Azure Functions
Zobrazí RedisListTrigger
nové prvky ze seznamu a zobrazí tyto položky do funkce.
Další informace o triggerech a vazbách Azure Cache for Redis najdete v rozšíření Redis pro Azure Functions.
Rozsah dostupnosti pro triggery funkcí
Typ triggeru | Azure Managed Redis | Azure Cache for Redis |
---|---|---|
Seznamy | Ano | Yes |
Důležité
Pokud používáte Azure Managed Redis nebo podnikové úrovně Azure Cache for Redis, použijte místo portu 6380 nebo 6379 port 10000.
Důležité
Triggery Redis se v současné době nepodporují pro funkce spuštěné v plánu Consumption.
Důležité
Rozšíření Azure Cache for Redis zatím nepodporuje model Pythonu v2 pro Functions. Další podrobnosti o tom, jak model v2 funguje, najdete v příručce pro vývojáře v Pythonu pro Azure Functions.
Příklad
Důležité
Pro funkce .NET se doporučuje použití izolovaného modelu pracovního procesu přes model v procesu. Porovnání modelů pracovních procesů v procesu a izolovaných pracovních procesů najdete v rozdílech mezi izolovaným modelem pracovního procesu a modelem v procesu pro .NET ve službě Azure Functions.
Následující ukázka dotazuje klíč 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);
}
}
}
Následující ukázka se dotazuje klíče listTest
na instanci Redis localhost na adrese 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);
}
}
Tato ukázka používá stejný index.js
soubor s daty vazby function.json
v souboru.
Tady je index.js
soubor:
module.exports = async function (context, entry) {
context.log(entry);
}
Tady function.json
jsou data vazby:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
Tato ukázka používá stejný run.ps1
soubor s daty vazby function.json
v souboru.
Tady je run.ps1
soubor:
param($entry, $TriggerMetadata)
Write-Host $entry
Tady function.json
jsou data vazby:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
Tato ukázka používá stejný __init__.py
soubor s daty vazby function.json
v souboru.
Programovací model Pythonu v1 vyžaduje, abyste definovali vazby v samostatném souboru function.json ve složce funkce. Další informace najdete v příručce pro vývojáře Pythonu.
Tady je __init__.py
soubor:
import logging
def main(entry: str):
logging.info(entry)
Tady function.json
jsou data vazby:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Atributy
Parametr | Popis | Požaduje se | Výchozí |
---|---|---|---|
Connection |
Název nastavení aplikace, které obsahuje připojovací řetězec mezipaměti, například:<cacheName>.redis.cache.windows.net:6380,password... |
Ano | |
Key |
Klíč pro čtení. Toto pole lze vyřešit pomocí INameResolver . |
Ano | |
PollingIntervalInMs |
Jak často dotazovat Redis v milisekundách | Volitelné | 1000 |
MessagesPerWorker |
Kolik zpráv má každá instance funkcí zpracovat. Používá se k určení počtu instancí, na které se má funkce škálovat. | Volitelné | 100 |
Count |
Počet položek, které se mají vysunout z Redis najednou Položky se zpracovávají paralelně. Podporuje se pouze u Redis 6.2+ pomocí argumentu COUNT in LPOP a RPOP . |
Volitelné | 10 |
ListPopFromBeginning |
Určuje, zda chcete pop položky od začátku pomocí LPOP , nebo pop položky z konce pomocí RPOP . |
Volitelné | true |
Poznámky
Parametr | Popis | Požaduje se | Výchozí |
---|---|---|---|
name |
"entry" | ||
connection |
Název nastavení aplikace, které obsahuje připojovací řetězec mezipaměti, například:<cacheName>.redis.cache.windows.net:6380,password... |
Ano | |
key |
Toto pole lze přeložit pomocí INameResolver. | Ano | |
pollingIntervalInMs |
Jak často dotazovat Redis v milisekundách | Volitelné | 1000 |
messagesPerWorker |
Kolik zpráv má každá instance funkcí zpracovat. Používá se k určení počtu instancí, na které se má funkce škálovat. | Volitelné | 100 |
count |
Počet položek, které se mají číst z Redis najednou Ty se zpracovávají paralelně. | Volitelné | 10 |
listPopFromBeginning |
Zda se mají položky streamu odstranit po spuštění funkce. | Ano | true |
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json.
vlastnost function.json | Popis | Volitelné | Výchozí |
---|---|---|---|
type |
Název triggeru. | No | |
listPopFromBeginning |
Zda se mají položky streamu odstranit po spuštění funkce. Nastavte na true . |
Ano | true |
connection |
Název nastavení aplikace, které obsahuje připojovací řetězec mezipaměti, například:<cacheName>.redis.cache.windows.net:6380,password... |
No | |
key |
Toto pole lze vyřešit pomocí INameResolver . |
No | |
pollingIntervalInMs |
Jak často dotazovat Redis v milisekundách | Ano | 1000 |
messagesPerWorker |
Kolik zpráv má každá instance funkcí zpracovat. Používá se k určení počtu instancí, na které se má funkce škálovat. | Ano | 100 |
count |
Počet položek pro čtení z mezipaměti najednou Položky se zpracovávají paralelně. | Ano | 10 |
name |
? | Ano | |
direction |
Nastavte na in . |
No |
Kompletní příklady najdete v části Příklad.
Využití
Zobrazí RedisListTrigger
nové prvky ze seznamu a zobrazí tyto položky do funkce. Aktivační událost se dotazuje Redis v konfigurovatelném pevném intervalu a používá a používá LPOP
položky ze seznamů.RPOP
Typ | Popis |
---|---|
byte[] |
Zpráva z kanálu. |
string |
Zpráva z kanálu. |
Custom |
Trigger používá Json.NET serializace k mapování zprávy z kanálu z kanálu string do vlastního typu. |