Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Всплывает RedisListTrigger новые элементы из списка и отображает эти записи в функцию.
Дополнительные сведения о триггерах и привязках Кэш Azure для Redis расширение Redis для Функции Azure.
Область доступности триггеров функций
| Тип триггера | Управляемый Redis в Azure | Кэш Azure для Redis |
|---|---|---|
| Списки | Да | Да |
Внимание
При использовании Управляемого Redis azure или уровнях enterprise Кэш Azure для Redis используйте порт 10000, а не порт 6380 или 6379.
Внимание
Триггеры Redis в настоящее время не поддерживаются для функций, работающих в плане потребления или плане потребления Flex.
Внимание
Модель 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 и LPOPRPOP. |
Необязательно | 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 | Описание: | Необязательно | По умолчанию. |
|---|---|---|---|
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 в настраиваемом фиксированном интервале и использует и LPOP использует RPOP всплывающие записи из списков.
| Тип | Описание: |
|---|---|
byte[] |
Сообщение из канала. |
string |
Сообщение из канала. |
Custom |
Триггер использует сериализацию Json.NET для сопоставления сообщения из канала с string пользовательским типом. |