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.
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 javascriptový kód (z index.js) se opakuje a protokoluje 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) se opakuje a protokoluje 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.