RedisListTrigger för Azure Functions (förhandsversion)

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

Nivå Grundläggande Standard, Premium Enterprise, Enterprise Flash
Listor Ja Ja Ja

Viktigt!

Redis-utlösare stöds för närvarande inte för funktioner som körs i förbrukningsplanen.

Viktigt!

Node.js v4-modellen för Functions stöds ännu inte av Azure Cache for Redis-tillägget. Mer information om hur v4-modellen fungerar finns i utvecklarguiden för Azure Functions Node.js. Mer information om skillnaderna mellan v3 och v4 finns i migreringsguiden.

Viktigt!

Python v2-modellen för Functions stöds ännu inte av Azure Cache for Redis-tillägget. Mer information om hur v2-modellen fungerar finns i utvecklarhandboken för Azure Functions Python.

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 LPOPeller pop-poster från slutet med hjälp av RPOP. Valfritt true

Kommentarer

Parameter Beskrivning Obligatoriskt Standardvärde
name "entry"
connection Namnet på programinställningen som innehåller cacheminnet anslutningssträng, till exempel:<cacheName>.redis.cache.windows.net:6380,password... Ja
key 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 läsas från Redis samtidigt. Dessa bearbetas parallellt. Valfritt 10
listPopFromBeginning Om du vill ta bort dataströmposterna när funktionen har körts. Ja true

Konfiguration

I följande tabell förklaras de bindningskonfigurationsegenskaper som du anger i function.json-filen.

function.json egenskap beskrivning Valfritt Standardvärde
type Namnet på utlösaren. Nej
listPopFromBeginning Om du vill ta bort dataströmposterna när funktionen har körts. Ange till true. Ja true
connection Namnet på programinställningen som innehåller cacheminnet anslutningssträng, till exempel:<cacheName>.redis.cache.windows.net:6380,password... Nej
key Det här fältet kan lösas med hjälp av INameResolver. Nej
pollingIntervalInMs Hur ofta redis ska avsökas i millisekunder. Ja 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. Ja 100
count Antal poster som ska läsas från cacheminnet samtidigt. Poster bearbetas parallellt. Ja 10
name ? Ja
direction Ange till in. Nej

Se avsnittet Exempel för fullständiga exempel.

Användning

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.