Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При запуске функции Кэш Azure для Redis входная привязка извлекает данные из кэша и передает ее функции в качестве входного параметра.
Сведения об установке и настройке см. в обзорной статье.
Область доступности привязок функций
| Тип привязки | Управляемый Redis в Azure | Кэш Azure для Redis |
|---|---|---|
| Входные данные | Да | Да |
Внимание
При использовании Управляемого Redis azure или уровнях enterprise Кэш Azure для Redis используйте порт 10000, а не порт 6380 или 6379.
Внимание
Модель Node.js версии 4 для функций пока не поддерживается расширением Кэш Azure для Redis. Дополнительные сведения о том, как работает модель версии 4, см. в руководстве разработчика по Функции Azure Node.js. Дополнительные сведения о различиях между версиями 3 и 4 см. в руководстве по миграции.
Пример
Функцию C# можно создать с помощью одного из следующих режимов C#:
-
Изолированная рабочая модель: скомпилированная функция C#, которая выполняется в рабочем процессе, изолированном от среды выполнения. Изолированный рабочий процесс необходим для поддержки функций C#, работающих в LTS и не LTS-версиях .NET и платформа .NET Framework. Расширения для изолированных рабочих процессов используют
Microsoft.Azure.Functions.Worker.Extensions.*пространства имен. -
Модель внутрипроцессного процесса: скомпилированная функция C#, которая выполняется в том же процессе, что и среда выполнения Функций. В варианте этой модели функции можно запускать с помощью скриптов C#, которая поддерживается главным образом для редактирования портала C#. Расширения для функций в процессе используют
Microsoft.Azure.WebJobs.Extensions.*пространства имен.
Внимание
Для функций .NET рекомендуется использовать изолированную рабочую модель для модели в процессе . Сравнение внутрипроцессных и изолированных рабочих моделей см. в различиях между изолированной рабочей моделью и внутрипроцессной моделью для .NET на Функции Azure.
Следующий код использует ключ из триггера pub/sub для получения и записи значения из входной привязки с помощью GET команды:
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.Functions.Worker.Extensions.Redis.Samples.RedisInputBinding
{
public class SetGetter
{
private readonly ILogger<SetGetter> logger;
public SetGetter(ILogger<SetGetter> logger)
{
this.logger = logger;
}
[Function(nameof(SetGetter))]
public void Run(
[RedisPubSubTrigger(Common.connectionStringSetting, "__keyevent@0__:set")] string key,
[RedisInput(Common.connectionStringSetting, "GET {Message}")] string value)
{
logger.LogInformation($"Key '{key}' was set to value '{value}'");
}
}
}
Дополнительные примеры для Кэш Azure для Redis входной привязки доступны в репозитории GitHub.
Следующий код использует ключ из триггера pub/sub для получения и записи значения из входной привязки с помощью GET команды:
package com.function.RedisInputBinding;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.redis.annotation.*;
public class SetGetter {
@FunctionName("SetGetter")
public void run(
@RedisPubSubTrigger(
name = "key",
connection = "redisConnectionString",
channel = "__keyevent@0__:set")
String key,
@RedisInput(
name = "value",
connection = "redisConnectionString",
command = "GET {Message}")
String value,
final ExecutionContext context) {
context.getLogger().info("Key '" + key + "' was set to value '" + value + "'");
}
}
Этот function.json определяет триггер pub/sub и входную привязку к сообщению GET в экземпляре Кэш Azure для Redis:
{
"bindings": [
{
"type": "redisPubSubTrigger",
"connection": "redisConnectionString",
"channel": "__keyevent@0__:set",
"name": "key",
"direction": "in"
},
{
"type": "redis",
"connection": "redisConnectionString",
"command": "GET {Message}",
"name": "value",
"direction": "in"
}
],
"scriptFile": "index.js"
}
Этот код JavaScript (из index.js) извлекает и регистрирует кэшированное значение, связанное с ключом, предоставленным триггером pub/sub.
module.exports = async function (context, key, value) {
context.log("Key '" + key + "' was set to value '" + value + "'");
}
Этот function.json определяет триггер pub/sub и входную привязку к сообщению GET в экземпляре Кэш Azure для Redis:
{
"bindings": [
{
"type": "redisPubSubTrigger",
"connection": "redisConnectionString",
"channel": "__keyevent@0__:set",
"name": "key",
"direction": "in"
},
{
"type": "redis",
"connection": "redisConnectionString",
"command": "GET {Message}",
"name": "value",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
Этот код PowerShell (из run.ps1) извлекает и регистрирует кэшированное значение, связанное с ключом, предоставленным триггером pub/sub.
param($key, $value, $TriggerMetadata)
Write-Host "Key '$key' was set to value '$value'"
В следующем примере используется триггер pub/sub с входной привязкой к сообщению GET в экземпляре Кэш Azure для Redis. Пример зависит от того, используется ли модель программирования Python версии 1 или версии 2.
Этот function.json определяет триггер pub/sub и входную привязку к сообщению GET в экземпляре Кэш Azure для Redis:
{
"bindings": [
{
"type": "redisPubSubTrigger",
"connection": "redisConnectionString",
"channel": "__keyevent@0__:set",
"name": "key",
"direction": "in"
},
{
"type": "redis",
"connection": "redisConnectionString",
"command": "GET {Message}",
"name": "value",
"direction": "in"
}
]
}
Этот код Python (из __init__.py) извлекает и регистрирует кэшированное значение, связанное с ключом, предоставленным триггером pub/sub:
import logging
def main(key: str, value: str):
logging.info("Key '" + key + "' was set to value '" + value + "'")
В разделе Конфигурация описываются эти свойства.
Атрибуты
Примечание.
Для этой привязки поддерживаются не все команды. На данный момент поддерживаются только команды чтения, возвращающие один выход. Полный список можно найти здесь
| Свойство атрибута | Description |
|---|---|
Connection |
Имя параметра приложения, содержащего строка подключения кэша, например:<cacheName>.redis.cache.windows.net:6380,password... |
Command |
Команда redis-cli, выполняемая в кэше, со всеми аргументами, разделенными пробелами, такими как : GET key, HGET key field. |
Заметки
Заметка RedisInput поддерживает следующие свойства:
| Свойство | Description |
|---|---|
name |
Имя конкретной входной привязки. |
connection |
Имя параметра приложения, содержащего строка подключения кэша, например:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Команда redis-cli, выполняемая в кэше, со всеми аргументами, разделенными пробелами, например: GET key или HGET key field. |
Настройка
В следующей таблице описываются свойства конфигурации привязки, которые задаются в файле function.json.
| Свойство в function.json | Description |
|---|---|
connection |
Имя параметра приложения, содержащего строка подключения кэша, например:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Команда redis-cli, выполняемая в кэше, со всеми аргументами, разделенными пробелами, такими как : GET key, HGET key field. |
Примечание.
Python версии 2 и Node.js версии 4 для функций не используют function.json для определения функции. Обе эти новые языковые версии в настоящее время не поддерживаются привязками кэша Redis Для Azure.
Подробные примеры см. в разделе Примеры.
Использование
Входная привязка ожидает получения строки из кэша.
При использовании настраиваемого типа в качестве параметра привязки расширение пытается десериализировать строку в формате JSON в настраиваемый тип этого параметра.
Внимание
Чтобы обеспечить оптимальную безопасность, приложение-функция должна использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к кэшу, если это возможно. Авторизация с помощью идентификатора Microsoft Entra и управляемых удостоверений обеспечивает более высокую безопасность и удобство использования при авторизации ключа общего доступа. Дополнительные сведения об использовании управляемых удостоверений с кэшем см. в разделе "Использование идентификатора Microsoft Entra для проверки подлинности кэша".