Share via


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

Laag Basis Standaard, Premium Enterprise, Enterprise Flash
Lijsten Ja Ja Ja

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 listTestgepeild.

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.jsonziet 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.jsonziet 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.jsonziet 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 LPOPmoeten 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.