RedisListTrigger för Azure Functions
Pops RedisListTrigger
nya element från en lista och visar dessa poster till funktionen.
Mer information om Utlösare och bindningar i Azure Cache for Redis finns i Redis-tillägget för Azure Functions.
Omfång för tillgänglighet för funktionsutlösare
Utlösartyp | Azure Managed Redis | Azure Cache for Redis |
---|---|---|
Listor | Ja | Ja |
Viktigt!
När du använder Azure Managed Redis eller Enterprise-nivåerna i Azure Cache for Redis använder du port 10000 i stället för port 6380 eller 6379.
Viktigt!
Redis-utlösare stöds för närvarande inte för funktioner som körs i förbrukningsplanen.
Exempel
Viktigt!
För .NET-funktioner rekommenderas användning av den isolerade arbetsmodellen över den pågående modellen. En jämförelse av de processbaserade och isolerade arbetsmodellerna finns i skillnader mellan den isolerade arbetsmodellen och den processbaserade modellen för .NET på Azure Functions.
Följande exempel avsöker nyckeln 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);
}
}
}
Följande exempel avsöker nyckeln listTest
vid en localhost Redis-instans på 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);
}
}
Det här exemplet använder samma index.js
fil med bindningsdata i function.json
filen.
Här är index.js
filen:
module.exports = async function (context, entry) {
context.log(entry);
}
Här är bindningsdata från function.json
:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
Det här exemplet använder samma run.ps1
fil med bindningsdata i function.json
filen.
Här är run.ps1
filen:
param($entry, $TriggerMetadata)
Write-Host $entry
Här är bindningsdata från function.json
:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
Det här exemplet använder samma __init__.py
fil med bindningsdata i function.json
filen.
Programmeringsmodellen Python v1 kräver att du definierar bindningar i en separat function.json fil i funktionsmappen. Mer information finns i utvecklarguiden för Python.
Här är __init__.py
filen:
import logging
def main(entry: str):
logging.info(entry)
Här är bindningsdata från function.json
:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Attribut
Parameter | Beskrivning | Obligatoriskt | Standardvärde |
---|---|---|---|
Connection |
Namnet på programinställningen som innehåller cacheminnet anslutningssträng, till exempel:<cacheName>.redis.cache.windows.net:6380,password... |
Ja | |
Key |
Nyckel att läsa från. Det här fältet kan lösas med hjälp av INameResolver . |
Ja | |
PollingIntervalInMs |
Hur ofta redis ska avsökas i millisekunder. | Valfritt | 1000 |
MessagesPerWorker |
Hur många meddelanden varje funktionsinstans ska bearbeta. Används för att avgöra hur många instanser funktionen ska skalas till. | Valfritt | 100 |
Count |
Antal poster som ska visas från Redis samtidigt. Poster bearbetas parallellt. Stöds endast på Redis 6.2+ med argumentet COUNT i LPOP och RPOP . |
Valfritt | 10 |
ListPopFromBeginning |
Avgör om pop-poster ska visas från början med hjälp av LPOP eller pop-poster från slutet med hjälp av RPOP . |
Valfritt | true |
Kommentarer
Konfiguration
I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i function.json-filen.
Se avsnittet Exempel för fullständiga exempel.
Förbrukning
Pops RedisListTrigger
nya element från en lista och visar dessa poster till funktionen. Utlösaren avsöker Redis med ett konfigurerbart fast intervall och använder LPOP
och RPOP
för att visa poster från listorna.
Typ | Beskrivning |
---|---|
byte[] |
Meddelandet från kanalen. |
string |
Meddelandet från kanalen. |
Custom |
Utlösaren använder Json.NET serialisering för att mappa meddelandet från kanalen från en string till en anpassad typ. |