Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Vengono RedisListTrigger visualizzati nuovi elementi da un elenco e tali voci vengono visualizzati nella funzione.
Per altre informazioni sui trigger e le associazioni redis gestiti Azure, Redis Extension for Azure Functions.
Ambito della disponibilità per i trigger di funzioni
| Tipo di trigger | Azure Redis gestito | Azure Cache for Redis |
|---|---|---|
| Elenchi | Sì | Sì |
Importante
Quando si usa Azure Redis gestito o i livelli Enterprise di Azure Cache for Redis, usare la porta 10000 anziché la porta 6380 o 6379.
Importante
I trigger Redis non sono attualmente supportati per le funzioni in esecuzione in un piano a consumo o in un piano a consumo flessibile.
Importante
Il modello Node.js v4 per Funzioni non è ancora supportato dall'estensione Azure Cache for Redis. Per altre informazioni sul funzionamento del modello v4, vedere la guida per sviluppatori Azure Functions Node.js. Altre informazioni sulle differenze tra i modelli v3 e v4 sono disponibili nella guida alla migrazione.
Importante
Il modello Python v2 per Funzioni non è ancora supportato dall'estensione Azure Cache for Redis. Per altre informazioni sul funzionamento del modello v2, vedere la guida per sviluppatori Azure Functions Python.
Esempio
Importante
Per le funzioni di .NET, è consigliabile usare il modello nel modello in-process>. Per un confronto tra i modelli in-process e isolated worker, vedere le differenze tra il modello isolated worker e il modello in-process per .NET su Azure Functions.
Nell'esempio seguente viene eseguito il polling della chiave 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);
}
}
}
L'esempio seguente esegue il polling della chiave listTest in un'istanza di Redis localhost all’indirizzo 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 questo esempio viene usato lo stesso index.js file, con i dati di associazione nel function.json file.
Ecco il index.js file:
module.exports = async function (context, entry) {
context.log(entry);
}
Da function.json, ecco i dati di associazione:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
In questo esempio viene usato lo stesso run.ps1 file, con i dati di associazione nel function.json file.
Ecco il run.ps1 file:
param($entry, $TriggerMetadata)
Write-Host $entry
Da function.json, ecco i dati di associazione:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
In questo esempio viene usato lo stesso __init__.py file, con i dati di associazione nel function.json file.
Il modello di programmazione Python v1 richiede di definire associazioni in un file separato function.json nella cartella della funzione. Per altre informazioni, vedere la guida per sviluppatori Python.
Ecco il __init__.py file:
import logging
def main(entry: str):
logging.info(entry)
Da function.json, ecco i dati di associazione:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Attributi
| Parametro | Descrizione | Richiesto | Valore predefinito |
|---|---|---|---|
Connection |
Nome dell'impostazione application che contiene il connection string della cache, ad esempio: <cacheName>.redis.cache.windows.net:6380,password... |
Sì | |
Key |
Chiave da cui leggere. Questo campo può essere risolto usando INameResolver. |
Sì | |
PollingIntervalInMs |
Frequenza con cui eseguire il polling di Redis in millisecondi. | Facoltativo | 1000 |
MessagesPerWorker |
Numero di messaggi che ogni istanza di funzioni deve elaborare. Usato per determinare il numero di istanze a cui deve essere ridimensionata la funzione. | Facoltativo | 100 |
Count |
Numero di voci da visualizzare da Redis contemporaneamente. Le voci vengono elaborate in parallelo. Supportato solo in Redis 6.2+ usando l'argomento COUNT in LPOP e RPOP. |
Facoltativo | 10 |
ListPopFromBeginning |
Determina se visualizzare le voci dall'inizio utilizzando LPOPo per visualizzare le voci dalla fine utilizzando RPOP. |
Facoltativo | true |
Annotazioni
| Parametro | Descrizione | Richiesto | Valore predefinito |
|---|---|---|---|
name |
"entry" | ||
connection |
Nome dell'impostazione application che contiene il connection string della cache, ad esempio: <cacheName>.redis.cache.windows.net:6380,password... |
Sì | |
key |
Questo campo può essere risolto usando INameResolver. | Sì | |
pollingIntervalInMs |
Frequenza con cui eseguire il polling di Redis in millisecondi. | Facoltativo | 1000 |
messagesPerWorker |
Numero di messaggi che ogni istanza di funzioni deve elaborare. Usato per determinare il numero di istanze a cui deve essere ridimensionata la funzione. | Facoltativo | 100 |
count |
Numero di voci da leggere da Redis contemporaneamente. Tali elementi vengono elaborati in parallelo. | Facoltativo | 10 |
listPopFromBeginning |
Indica se eliminare le voci del flusso dopo l'esecuzione della funzione. | Sì | true |
Impostazione
Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json.
| function.json, proprietà | Descrizione | Facoltativo | Valore predefinito |
|---|---|---|---|
type |
Nome del trigger. | No | |
listPopFromBeginning |
Indica se eliminare le voci del flusso dopo l'esecuzione della funzione. Impostare su true. |
Sì | true |
connection |
Nome dell'impostazione application che contiene il connection string della cache, ad esempio: <cacheName>.redis.cache.windows.net:6380,password... |
No | |
key |
Questo campo può essere risolto usando INameResolver. |
No | |
pollingIntervalInMs |
Frequenza con cui eseguire il polling di Redis in millisecondi. | Sì | 1000 |
messagesPerWorker |
Numero di messaggi che ogni istanza di funzioni deve elaborare. Usato per determinare il numero di istanze a cui deve essere ridimensionata la funzione. | Sì | 100 |
count |
Numero di voci da leggere dalla cache contemporaneamente. Le voci vengono elaborate in parallelo. | Sì | 10 |
name |
? | Sì | |
direction |
Impostare su in. |
No |
Per esempi completi, vedere la sezione di esempio.
Utilizzo
Vengono RedisListTrigger visualizzati nuovi elementi da un elenco e tali voci vengono visualizzati nella funzione. Il trigger esegue il polling di Redis a un intervallo fisso configurabile e usa LPOP e RPOP per visualizzare le voci dagli elenchi.
| Tipo | Descrizione |
|---|---|
byte[] |
Messaggio dal canale. |
string |
Messaggio dal canale. |
Custom |
Il trigger usa Json.NET serializzazione per eseguire il mapping del messaggio dal canale da un string a un tipo personalizzato. |