Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O RedisListTrigger exibe novos elementos de uma lista e exibe essas entradas para a função.
Para obter mais informações sobre gatilhos e associações do Cache do Azure para Redis, a Extensão do Redis para Azure Functions.
Âmbito de disponibilidade para acionadores de funções
| Trigger Type (Tipo de Acionador) | Redis Gerido pelo Azure | Cache do Azure para Redis |
|---|---|---|
| Listas | Sim | Sim |
Importante
Ao usar o Azure Managed Redis ou as camadas Enterprise do Cache do Azure para Redis, use a porta 10000 em vez da porta 6380 ou 6379.
Importante
Atualmente, os gatilhos Redis não são suportados para funções executadas em um plano de consumo ou em um plano de consumo flexível.
Importante
O modelo Node.js v4 para Functions ainda não é suportado pela extensão Cache do Azure para Redis. Para obter mais detalhes sobre como o modelo v4 funciona, consulte o Guia do desenvolvedor do Azure Functions Node.js. Para saber mais sobre as diferenças entre v3 e v4, consulte o guia de migração.
Importante
O modelo Python v2 para Functions ainda não é suportado pela extensão Cache for Redis do Azure. Para obter mais detalhes sobre como o modelo v2 funciona, consulte o guia do desenvolvedor Python do Azure Functions.
Exemplo
Importante
Para funções .NET, o uso do modelo de trabalho isolado é recomendado sobre o modelo em processo . Para obter uma comparação dos modelos de trabalho em processo e isolado, consulte as diferenças entre o modelo de trabalhador isolado e o modelo em processo para .NET no Azure Functions.
O exemplo a seguir sonda a chave 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);
}
}
}
O exemplo a seguir sonda a chave listTest em uma instância do Redis localhost em 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);
}
}
Este exemplo usa o mesmo index.js arquivo, com dados de vinculação no function.json arquivo.
Aqui está o index.js arquivo:
module.exports = async function (context, entry) {
context.log(entry);
}
A partir de function.json, aqui estão os dados de vinculação:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
Este exemplo usa o mesmo run.ps1 arquivo, com dados de vinculação no function.json arquivo.
Aqui está o run.ps1 arquivo:
param($entry, $TriggerMetadata)
Write-Host $entry
A partir de function.json, aqui estão os dados de vinculação:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
Este exemplo usa o mesmo __init__.py arquivo, com dados de vinculação no function.json arquivo.
O modelo de programação Python v1 requer que você defina ligações em um arquivo function.json separado na pasta de funções. Para obter mais informações, consulte o guia do desenvolvedor do Python.
Aqui está o __init__.py arquivo:
import logging
def main(entry: str):
logging.info(entry)
A partir de function.json, aqui estão os dados de vinculação:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Atributos
| Parâmetro | Descrição | Necessário | Predefinição |
|---|---|---|---|
Connection |
O nome da configuração do aplicativo que contém a cadeia de conexão de cache, como:<cacheName>.redis.cache.windows.net:6380,password... |
Sim | |
Key |
Chave para ler. Este campo pode ser resolvido usando INameResolver. |
Sim | |
PollingIntervalInMs |
Com que frequência sondar Redis em milissegundos. | Opcional | 1000 |
MessagesPerWorker |
Quantas mensagens cada instância de funções deve processar. Usado para determinar quantas instâncias a função deve ser dimensionada. | Opcional | 100 |
Count |
Número de entradas para pop do Redis ao mesmo tempo. As inscrições são processadas em paralelo. Suportado apenas no Redis 6.2+ usando o COUNT argumento in LPOP e RPOP. |
Opcional | 10 |
ListPopFromBeginning |
Determina se as entradas pop do início usando LPOP, ou as entradas pop do final usando RPOP. |
Opcional | true |
Anotações
| Parâmetro | Descrição | Necessário | Predefinição |
|---|---|---|---|
name |
"entrada" | ||
connection |
O nome da configuração do aplicativo que contém a cadeia de conexão de cache, como:<cacheName>.redis.cache.windows.net:6380,password... |
Sim | |
key |
Este campo pode ser resolvido usando INameResolver. | Sim | |
pollingIntervalInMs |
Com que frequência sondar Redis em milissegundos. | Opcional | 1000 |
messagesPerWorker |
Quantas mensagens cada instância de funções deve processar. Usado para determinar quantas instâncias a função deve ser dimensionada. | Opcional | 100 |
count |
Número de entradas para ler do Redis ao mesmo tempo. Estes são processados em paralelo. | Opcional | 10 |
listPopFromBeginning |
Se as entradas de fluxo devem ser excluídas após a execução da função. | Sim | true |
Configuração
A tabela a seguir explica as propriedades de configuração de vinculação definidas no arquivo function.json.
| function.json Propriedade | Descrição | Opcional | Predefinição |
|---|---|---|---|
type |
Nome do gatilho. | Não | |
listPopFromBeginning |
Se as entradas de fluxo devem ser excluídas após a execução da função. Definido como true. |
Sim | true |
connection |
O nome da configuração do aplicativo que contém a cadeia de conexão de cache, como:<cacheName>.redis.cache.windows.net:6380,password... |
Não | |
key |
Este campo pode ser resolvido usando INameResolver. |
Não | |
pollingIntervalInMs |
Com que frequência sondar Redis em milissegundos. | Sim | 1000 |
messagesPerWorker |
Quantas mensagens cada instância de funções deve processar. Usado para determinar quantas instâncias a função deve ser dimensionada. | Sim | 100 |
count |
Número de entradas a serem lidas do cache ao mesmo tempo. As inscrições são processadas em paralelo. | Sim | 10 |
name |
? | Sim | |
direction |
Definido como in. |
Não |
Consulte a seção Exemplo para obter exemplos completos.
Utilização
O RedisListTrigger exibe novos elementos de uma lista e exibe essas entradas para a função. O gatilho sonda Redis em um intervalo fixo configurável, e usa LPOP e RPOP para exibir entradas das listas.
| Tipo | Descrição |
|---|---|
byte[] |
A mensagem do canal. |
string |
A mensagem do canal. |
Custom |
O gatilho usa Json.NET serialização para mapear a mensagem do canal de um string para um tipo personalizado. |