Sdílet prostřednictvím


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í

Úroveň Basic Standard, Premium Enterprise, Enterprise Flash
Seznamy Ano Ano Yes

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 Node.js v4 pro Functions. Další podrobnosti o tom, jak model v4 funguje, najdete v příručce pro vývojáře služby Azure Functions Node.js. Další informace o rozdílech mezi v3 a v4 najdete v průvodci migrací.

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