RedisListTrigger для Функции Azure
Всплывает RedisListTrigger
новые элементы из списка и отображает эти записи в функцию.
Дополнительные сведения о триггерах и привязках Кэш Azure для Redis расширение Redis для Функции Azure.
Область доступности триггеров функций
Уровень | Базовая | Стандарт, Премиум | Enterprise, Enterprise Flash |
---|---|---|---|
Списки | Да | Да | Да |
Внимание
Триггеры Redis в настоящее время не поддерживаются для функций, работающих в плане потребления.
Внимание
Модель Node.js версии 4 для функций пока не поддерживается расширением Кэш Azure для Redis. Дополнительные сведения о том, как работает модель версии 4, см. в руководстве разработчика по Функции Azure Node.js. Дополнительные сведения о различиях между версиями 3 и 4 см. в руководстве по миграции.
Пример
Внимание
Для функций .NET рекомендуется использовать изолированную рабочую модель для модели в процессе . Сравнение внутрипроцессных и изолированных рабочих моделей см. в различиях между изолированной рабочей моделью и внутрипроцессной моделью для .NET на Функции Azure.
В следующем примере выполняется опрос ключа 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);
}
}
}
Следующий пример опрашивает ключ listTest
в экземпляре Localhost Redis по 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);
}
}
В этом примере используется тот же index.js
файл с данными привязки function.json
в файле.
index.js
Вот файл:
module.exports = async function (context, entry) {
context.log(entry);
}
Ниже function.json
приведены данные привязки:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
В этом примере используется тот же run.ps1
файл с данными привязки function.json
в файле.
run.ps1
Вот файл:
param($entry, $TriggerMetadata)
Write-Host $entry
Ниже function.json
приведены данные привязки:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
В этом примере используется тот же __init__.py
файл с данными привязки function.json
в файле.
Модель программирования Python версии 1 требует определения привязок в отдельном файле function.json в папке функции. Дополнительные сведения см. в руководстве разработчика Python.
__init__.py
Вот файл:
import logging
def main(entry: str):
logging.info(entry)
Ниже function.json
приведены данные привязки:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Атрибуты
Параметр | Описание: | Обязательное поле | По умолчанию. |
---|---|---|---|
Connection |
Имя параметра приложения, содержащего строка подключения кэша, например:<cacheName>.redis.cache.windows.net:6380,password... |
Да | |
Key |
Ключ для чтения из. Это поле можно разрешить с помощью INameResolver . |
Да | |
PollingIntervalInMs |
Как часто опрашивать Redis в миллисекундах. | Необязательно | 1000 |
MessagesPerWorker |
Сколько сообщений каждый экземпляр функций должен обрабатывать. Используется для определения количества экземпляров, в которые должна масштабироваться функция. | Необязательно | 100 |
Count |
Количество записей, которые будут всплывать из Redis в один раз. Записи обрабатываются параллельно. Поддерживается только в Redis 6.2+ с помощью аргумента COUNT и LPOP RPOP . |
Необязательно | 10 |
ListPopFromBeginning |
Определяет, следует ли всплывать записи с самого начала использования LPOP или всплывать с конца.RPOP |
Необязательно | true |
Заметки
Параметр | Описание: | Обязательное поле | По умолчанию. |
---|---|---|---|
name |
"entry" | ||
connection |
Имя параметра приложения, содержащего строка подключения кэша, например:<cacheName>.redis.cache.windows.net:6380,password... |
Да | |
key |
Это поле можно разрешить с помощью INameResolver. | Да | |
pollingIntervalInMs |
Как часто опрашивать Redis в миллисекундах. | Необязательно | 1000 |
messagesPerWorker |
Сколько сообщений каждый экземпляр функций должен обрабатывать. Используется для определения количества экземпляров, в которые должна масштабироваться функция. | Необязательно | 100 |
count |
Количество записей для чтения из Redis одновременно. Они обрабатываются параллельно. | Необязательно | 10 |
listPopFromBeginning |
Удаление записей потока после выполнения функции. | Да | true |
Настройка
В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json.
Свойство function.json | Description | Необязательно | По умолчанию. |
---|---|---|---|
type |
Имя триггера. | No | |
listPopFromBeginning |
Удаление записей потока после выполнения функции. Задайте значение true . |
Да | true |
connection |
Имя параметра приложения, содержащего строка подключения кэша, например:<cacheName>.redis.cache.windows.net:6380,password... |
No | |
key |
Это поле можно разрешить с помощью INameResolver . |
No | |
pollingIntervalInMs |
Как часто опрашивать Redis в миллисекундах. | Да | 1000 |
messagesPerWorker |
Сколько сообщений каждый экземпляр функций должен обрабатывать. Используется для определения количества экземпляров, в которые должна масштабироваться функция. | Да | 100 |
count |
Количество записей для чтения из кэша одновременно. Записи обрабатываются параллельно. | Да | 10 |
name |
? | Да | |
direction |
Задайте значение in . |
No |
Подробные примеры см. в разделе Примеры.
Использование
Всплывает RedisListTrigger
новые элементы из списка и отображает эти записи в функцию. Триггер опрашивает Redis в настраиваемом фиксированном интервале и использует и RPOP
использует LPOP
всплывающие записи из списков.
Тип | Описание |
---|---|
byte[] |
Сообщение из канала. |
string |
Сообщение из канала. |
Custom |
Триггер использует сериализацию Json.NET для сопоставления сообщения из канала с string пользовательским типом. |