Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Läser RedisStreamTrigger nya poster från en ström och ytbehandlar dessa element till funktionen.
Omfång för tillgänglighet för funktionsutlösare
| Utlösartyp | Azure Managed Redis | Azure-cache för Redis | 
|---|---|---|
| Strömmar | 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 en förbrukningsplan eller en Flex Consumption-plan.
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.
| Körningsmodell | beskrivning | 
|---|---|
| Isolerad arbetsmodell | Funktionskoden körs i en separat .NET-arbetsprocess. Använd med versioner av .NET och .NET Framework som stöds. Mer information finns i Guide för att köra C# Azure Functions i den isolerade arbetsmodellen. | 
| Processmodell | Funktionskoden körs i samma process som Functions-värdprocessen. Stöder endast LTS-versioner (Long Term Support) av .NET. Mer information finns i Utveckla C#-klassbiblioteksfunktioner med Hjälp av Azure Functions. | 
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.Functions.Worker.Extensions.Redis.Samples.RedisStreamTrigger
{
    internal class SimpleStreamTrigger
    {
        private readonly ILogger<SimpleStreamTrigger> logger;
        public SimpleStreamTrigger(ILogger<SimpleStreamTrigger> logger)
        {
            this.logger = logger;
        }
        [Function(nameof(SimpleStreamTrigger))]
        public void Run(
            [RedisStreamTrigger(Common.connectionStringSetting, "streamKey")] string entry)
        {
            logger.LogInformation(entry);
        }
    }
}
package com.function.RedisStreamTrigger;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.redis.annotation.*;
public class SimpleStreamTrigger {
    @FunctionName("SimpleStreamTrigger")
    public void run(
            @RedisStreamTrigger(
                name = "req",
                connection = "redisConnectionString",
                key = "streamTest",
                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": "redisStreamTrigger",
      "connection": "redisConnectionString",
      "key": "streamTest",
      "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 | ConvertTo-Json)
Här är bindningsdata från function.json:
{
  "bindings": [
    {
      "type": "redisStreamTrigger",
      "connection": "redisConnectionString",
      "key": "streamTest",
      "pollingIntervalInMs": 1000,
      "maxBatchSize": 16,
      "name": "entry",
      "direction": "in"
    }
  ],
  "scriptFile": "run.ps1"
}
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.
Det här exemplet använder samma __init__.py fil med bindningsdata i function.json filen.
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": "redisStreamTrigger",
      "connection": "redisConnectionString",
      "key": "streamTest",
      "pollingIntervalInMs": 1000,
      "maxBatchSize": 16,
      "name": "entry",
      "direction": "in"
    }
  ],
  "scriptFile": "__init__.py"
}
Attribut
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
              RedisStreamTrigger Azure-funktionen läser nya poster från en dataström och ytbehandlar dessa poster till funktionen.
Utlösaren avsöker Redis med ett konfigurerbart fast intervall och använder XREADGROUP för att läsa element från strömmen.
Konsumentgruppen för alla instanser av en funktion är namnet på funktionen, dvs SimpleStreamTrigger . för StreamTrigger-exemplet.
Varje funktionsinstans använder WEBSITE_INSTANCE_ID eller genererar ett slumpmässigt GUID som ska användas som konsumentnamn i gruppen för att säkerställa att utskalade instanser av funktionen inte läser samma meddelanden från strömmen.
| 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 stringtill en anpassad typ. |