RedisListTrigger voor Azure Functions
De RedisListTrigger
nieuwe elementen uit een lijst worden weergegeven en deze vermeldingen worden weergegeven in de functie.
Voor meer informatie over Azure Cache voor Redis triggers en bindingen, redis-extensie voor Azure Functions.
Bereik van beschikbaarheid voor functietriggers
Triggertype | Azure Managed Redis | Azure Cache voor Redis |
---|---|---|
Lijsten | Ja | Ja |
Belangrijk
Wanneer u Azure Managed Redis of de Enterprise-lagen van Azure Cache voor Redis gebruikt, gebruikt u poort 10000 in plaats van poort 6380 of 6379.
Belangrijk
Redis-triggers worden momenteel niet ondersteund voor functies die worden uitgevoerd in het verbruiksabonnement.
Belangrijk
Het Node.js v4-model voor Functions wordt nog niet ondersteund door de extensie Azure Cache voor Redis. Raadpleeg de ontwikkelaarshandleiding voor Azure Functions Node.js voor meer informatie over hoe het v4-model werkt. Raadpleeg de migratiehandleiding voor meer informatie over de verschillen tussen v3 en v4.
Belangrijk
Het Python v2-model voor Functions wordt nog niet ondersteund door de Azure Cache voor Redis-extensie. Raadpleeg de Ontwikkelaarshandleiding voor Azure Functions Python voor meer informatie over hoe het v2-model werkt.
Opmerking
Belangrijk
Voor .NET-functies wordt het gebruik van het geïsoleerde werkrolmodel aanbevolen via het procesmodel. Zie de verschillen tussen het geïsoleerde werkrolmodel en het in-procesmodel voor .NET in Azure Functions voor een vergelijking van de in-proces- en geïsoleerde werkrolmodellen.
In het volgende voorbeeld wordt de sleutel listTest
gepeild.
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);
}
}
}
In het volgende voorbeeld wordt de sleutel listTest
op een localhost Redis-exemplaar op 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);
}
}
In dit voorbeeld wordt hetzelfde index.js
bestand gebruikt, met bindingsgegevens in het function.json
bestand.
Dit is het index.js
bestand:
module.exports = async function (context, entry) {
context.log(entry);
}
Hier function.json
ziet u de bindingsgegevens:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
In dit voorbeeld wordt hetzelfde run.ps1
bestand gebruikt, met bindingsgegevens in het function.json
bestand.
Dit is het run.ps1
bestand:
param($entry, $TriggerMetadata)
Write-Host $entry
Hier function.json
ziet u de bindingsgegevens:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
In dit voorbeeld wordt hetzelfde __init__.py
bestand gebruikt, met bindingsgegevens in het function.json
bestand.
Voor het Python v1-programmeermodel moet u bindingen definiëren in een afzonderlijk function.json bestand in de functiemap. Zie de Ontwikkelaarshandleiding voor Python voor meer informatie.
Dit is het __init__.py
bestand:
import logging
def main(entry: str):
logging.info(entry)
Hier function.json
ziet u de bindingsgegevens:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Kenmerken
Parameter | Omschrijving | Vereist | Standaardinstelling |
---|---|---|---|
Connection |
De naam van de toepassingsinstelling die de cache-verbindingsreeks bevat, zoals:<cacheName>.redis.cache.windows.net:6380,password... |
Ja | |
Key |
Sleutel waaruit u wilt lezen. Dit veld kan worden omgezet met behulp van INameResolver . |
Ja | |
PollingIntervalInMs |
Hoe vaak Redis in milliseconden moet worden gepeild. | Optioneel | 1000 |
MessagesPerWorker |
Hoeveel berichten elk exemplaar van de functies moet verwerken. Wordt gebruikt om te bepalen naar hoeveel exemplaren de functie moet worden geschaald. | Optioneel | 100 |
Count |
Aantal vermeldingen dat in Redis tegelijk moet worden weergegeven. Vermeldingen worden parallel verwerkt. Alleen ondersteund op Redis 6.2+ met behulp van het COUNT argument in LPOP en RPOP . |
Optioneel | 10 |
ListPopFromBeginning |
Bepaalt of vermeldingen vanaf het begin LPOP moeten worden weergegeven of dat vermeldingen vanaf het einde moeten worden weergegeven.RPOP |
Optioneel | true |
Aantekeningen
Parameter | Omschrijving | Vereist | Standaardinstelling |
---|---|---|---|
name |
"vermelding" | ||
connection |
De naam van de toepassingsinstelling die de cache-verbindingsreeks bevat, zoals:<cacheName>.redis.cache.windows.net:6380,password... |
Ja | |
key |
Dit veld kan worden omgezet met behulp van INameResolver. | Ja | |
pollingIntervalInMs |
Hoe vaak Redis in milliseconden moet worden gepeild. | Optioneel | 1000 |
messagesPerWorker |
Hoeveel berichten elk exemplaar van de functies moet verwerken. Wordt gebruikt om te bepalen naar hoeveel exemplaren de functie moet worden geschaald. | Optioneel | 100 |
count |
Aantal vermeldingen dat in Redis tegelijk moet worden gelezen. Deze worden parallel verwerkt. | Optioneel | 10 |
listPopFromBeginning |
Of de streamvermeldingen moeten worden verwijderd nadat de functie is uitgevoerd. | Ja | true |
Configuratie
In de volgende tabel worden de bindingsconfiguratie-eigenschappen uitgelegd die u in het function.json-bestand hebt ingesteld.
function.json eigenschap | Beschrijving | Optioneel | Standaardinstelling |
---|---|---|---|
type |
Naam van de trigger. | Nee | |
listPopFromBeginning |
Of de streamvermeldingen moeten worden verwijderd nadat de functie is uitgevoerd. Ingesteld op true . |
Ja | true |
connection |
De naam van de toepassingsinstelling die de cache-verbindingsreeks bevat, zoals:<cacheName>.redis.cache.windows.net:6380,password... |
Nee | |
key |
Dit veld kan worden omgezet met behulp van INameResolver . |
Nee | |
pollingIntervalInMs |
Hoe vaak Redis in milliseconden moet worden gepeild. | Ja | 1000 |
messagesPerWorker |
Hoeveel berichten elk exemplaar van de functies moet verwerken. Wordt gebruikt om te bepalen naar hoeveel exemplaren de functie moet worden geschaald. | Ja | 100 |
count |
Aantal vermeldingen dat in de cache tegelijk moet worden gelezen. Vermeldingen worden parallel verwerkt. | Ja | 10 |
name |
? | Ja | |
direction |
Ingesteld op in . |
Nee |
Zie de sectie Voorbeeld voor volledige voorbeelden.
Gebruik
De RedisListTrigger
nieuwe elementen uit een lijst worden weergegeven en deze vermeldingen worden weergegeven in de functie. De trigger pollt Redis met een configureerbaar vast interval en gebruikt LPOP
en RPOP
pop-items uit de lijsten.
Type | Description |
---|---|
byte[] |
Het bericht van het kanaal. |
string |
Het bericht van het kanaal. |
Custom |
De trigger maakt gebruik van Json.NET serialisatie om het bericht van het kanaal van een string in een aangepast type toe te wijzen. |