Vstupní vazba Azure Cache for Redis pro Azure Functions
Při spuštění funkce vstupní vazba Azure Cache for Redis načte data z mezipaměti a předá ji do vaší funkce jako vstupní parametr.
Informace o nastavení a konfiguraci najdete v přehledu.
Rozsah dostupnosti pro vazby funkcí
Typ vazby | Azure Managed Redis | Azure Cache for Redis |
---|---|---|
Vstup | Ano | Yes |
Důležité
Pokud používáte Azure Managed Redis nebo podnikové úrovně Azure Cache for Redis, použijte místo portu 6380 nebo 6379 port 10000.
Důležité
Rozšíření Azure Cache for Redis zatím nepodporuje model Pythonu v2 pro Functions. Další podrobnosti o tom, jak model v2 funguje, najdete v příručce pro vývojáře v Pythonu pro Azure Functions.
Příklad
Funkci jazyka C# je možné vytvořit pomocí jednoho z následujících režimů jazyka C#:
- Izolovaný model pracovního procesu: Kompilovaná funkce jazyka C#, která běží v pracovním procesu, který je izolovaný od modulu runtime. Izolovaný pracovní proces je nutný pro podporu funkcí C# spuštěných na LTS a jiných verzích než LTS .NET a rozhraní .NET Framework. Rozšíření pro izolované funkce pracovních procesů používají
Microsoft.Azure.Functions.Worker.Extensions.*
obory názvů. - Model v procesu: Zkompilovaná funkce jazyka C#, která běží ve stejném procesu jako modul runtime služby Functions. Ve variantě tohoto modelu je možné spouštět funkce pomocí skriptování jazyka C#, což je podporováno především pro úpravy portálu C#. Rozšíření pro procesní funkce používají
Microsoft.Azure.WebJobs.Extensions.*
obory názvů.
Důležité
Pro funkce .NET se doporučuje použití izolovaného modelu pracovního procesu přes model v procesu. Porovnání modelů pracovních procesů v procesu a izolovaných pracovních procesů najdete v rozdílech mezi izolovaným modelem pracovního procesu a modelem v procesu pro .NET ve službě Azure Functions.
Následující kód používá klíč z triggeru pub/sub k získání a protokolování hodnoty ze vstupní vazby pomocí GET
příkazu:
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}'");
}
}
}
Další ukázky pro vstupní vazbu Azure Cache for Redis jsou k dispozici v úložišti GitHub.
Následující kód používá klíč z triggeru pub/sub k získání a protokolování hodnoty ze vstupní vazby pomocí GET
příkazu:
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 + "'");
}
}
Tento function.json definuje aktivační událost pub/sub i vstupní vazbu na zprávu GET v instanci Azure Cache for 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"
}
Tento kód JavaScriptu (z index.js) načte a zaznamená hodnotu uloženou v mezipaměti související s klíčem poskytnutým triggerem pub/sub.
module.exports = async function (context, key, value) {
context.log("Key '" + key + "' was set to value '" + value + "'");
}
Tento function.json definuje aktivační událost pub/sub i vstupní vazbu na zprávu GET v instanci Azure Cache for 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"
}
Tento kód PowerShellu (z run.ps1) načte a zaznamená hodnotu uloženou v mezipaměti související s klíčem poskytnutým triggerem pub/sub.
param($key, $value, $TriggerMetadata)
Write-Host "Key '$key' was set to value '$value'"
Následující příklad používá trigger pub/sub se vstupní vazbou ke zprávě GET v instanci Azure Cache for Redis. Tento příklad závisí na tom, jestli používáte programovací model v1 nebo v2 Pythonu.
Tento function.json definuje aktivační událost pub/sub i vstupní vazbu na zprávu GET v instanci Azure Cache for 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"
}
]
}
Tento kód Pythonu (z __init__.py) načte a zaznamená hodnotu uloženou v mezipaměti související s klíčem poskytnutým triggerem pub/sub:
import logging
def main(key: str, value: str):
logging.info("Key '" + key + "' was set to value '" + value + "'")
Oddíl konfigurace vysvětluje tyto vlastnosti.
Atributy
Poznámka:
Pro tuto vazbu nejsou podporovány všechny příkazy. V tuto chvíli se podporují pouze příkazy pro čtení, které vracejí jeden výstup. Úplný seznam najdete tady.
Vlastnost atributu | Popis |
---|---|
Connection |
Název nastavení aplikace, které obsahuje připojovací řetězec mezipaměti, například:<cacheName>.redis.cache.windows.net:6380,password... |
Command |
Příkaz redis-cli, který se má spustit v mezipaměti se všemi argumenty oddělenými mezerami, například: GET key , HGET key field . |
Poznámky
Poznámka RedisInput
podporuje tyto vlastnosti:
Vlastnost | Popis |
---|---|
name |
Název konkrétní vstupní vazby. |
connection |
Název nastavení aplikace, které obsahuje připojovací řetězec mezipaměti, například:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Příkaz redis-cli, který se má spustit v mezipaměti se všemi argumenty oddělenými mezerami, například: GET key nebo HGET key field . |
Konfigurace
Následující tabulka vysvětluje vlastnosti konfigurace vazby, které jste nastavili v souboru function.json.
vlastnost function.json | Popis |
---|---|
connection |
Název nastavení aplikace, které obsahuje připojovací řetězec mezipaměti, například:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Příkaz redis-cli, který se má spustit v mezipaměti se všemi argumenty oddělenými mezerami, například: GET key , HGET key field . |
Poznámka:
Python v2 a Node.js v4 pro funkce nepoužívají k definování funkce function.json. Obě tyto nové jazykové verze nejsou v současné době podporovány vazbami Azure Redis Cache.
Kompletní příklady najdete v části Příklad.
Využití
Vstupní vazba očekává, že z mezipaměti obdrží řetězec.
Pokud jako parametr vazby použijete vlastní typ, rozšíření se pokusí deserializovat řetězec ve formátu JSON do vlastního typu tohoto parametru.