Powiązanie wyjściowe usługi Azure Cache for Redis dla usługi Azure Functions
Powiązania wyjściowe usługi Azure Cache for Redis umożliwiają zmianę kluczy w pamięci podręcznej na podstawie zestawu dostępnego wyzwalacza w pamięci podręcznej.
Aby uzyskać informacje na temat konfiguracji i konfiguracji, zobacz omówienie.
Zakres dostępności powiązań funkcji
Typ powiązania | Azure Managed Redis | Azure Cache for Redis |
---|---|---|
Wyjście | Tak | Tak |
Ważne
W przypadku korzystania z usługi Azure Managed Redis lub warstw Enterprise usługi Azure Cache for Redis użyj portu 10000, a nie portu 6380 lub 6379.
Ważne
Model Node.js w wersji 4 dla usługi Functions nie jest jeszcze obsługiwany przez rozszerzenie usługi Azure Cache for Redis. Aby uzyskać więcej informacji na temat sposobu działania modelu w wersji 4, zapoznaj się z przewodnikiem dewelopera dotyczącym usługi Azure Functions Node.js. Aby dowiedzieć się więcej o różnicach między wersjami 3 i v4, zapoznaj się z przewodnikiem migracji.
Ważne
Model języka Python w wersji 2 dla usługi Functions nie jest jeszcze obsługiwany przez rozszerzenie usługi Azure Cache for Redis. Aby uzyskać więcej informacji na temat sposobu działania modelu w wersji 2, zapoznaj się z przewodnikiem dla deweloperów języka Python usługi Azure Functions.
Przykład
Funkcję języka C# można utworzyć przy użyciu jednego z następujących trybów języka C#:
- Model izolowanego procesu roboczego: skompilowana funkcja języka C#, która jest uruchamiana w procesie roboczym izolowanym od środowiska uruchomieniowego. Proces izolowanego procesu roboczego jest wymagany do obsługi funkcji języka C# uruchomionych w wersjach LTS i innych niż LTS platformy .NET oraz programu .NET Framework. Rozszerzenia dla izolowanych funkcji procesu roboczego używają
Microsoft.Azure.Functions.Worker.Extensions.*
przestrzeni nazw. - Model przetwarzania: skompilowana funkcja języka C#, która działa w tym samym procesie co środowisko uruchomieniowe usługi Functions. W odmianie tego modelu funkcje można uruchamiać przy użyciu skryptów języka C#, które są obsługiwane głównie w przypadku edytowania portalu języka C#. Rozszerzenia dla funkcji przetwarzania używają
Microsoft.Azure.WebJobs.Extensions.*
przestrzeni nazw.
W poniższym przykładzie pokazano wyzwalacz pub/sub dla zdarzenia zestawu z powiązaniem wyjściowym z tym samym wystąpieniem usługi Redis. Zdarzenie set wyzwala pamięć podręczną, a powiązanie wyjściowe zwraca polecenie usuwania dla klucza, który wyzwolił funkcję.
Ważne
W przypadku funkcji platformy .NET używanie izolowanego modelu procesu roboczego jest zalecane w modelu w procesie. Aby zapoznać się z porównaniem modeli procesów procesowych i izolowanych procesów roboczych, zobacz różnice między izolowanym modelem procesu roboczego a modelem procesu dla platformy .NET w usłudze Azure Functions.
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.Functions.Worker.Extensions.Redis.Samples.RedisOutputBinding
{
internal class SetDeleter
{
[Function(nameof(SetDeleter))]
[RedisOutput(Common.connectionString, "DEL")]
public static string Run(
[RedisPubSubTrigger(Common.connectionString, "__keyevent@0__:set")] string key,
ILogger logger)
{
logger.LogInformation($"Deleting recently SET key '{key}'");
return key;
}
}
}
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.WebJobs.Extensions.Redis.Samples.RedisOutputBinding
{
internal class SetDeleter
{
[FunctionName(nameof(SetDeleter))]
public static void Run(
[RedisPubSubTrigger(Common.connectionStringSetting, "__keyevent@0__:set")] string key,
[Redis(Common.connectionStringSetting, "DEL")] out string[] arguments,
ILogger logger)
{
logger.LogInformation($"Deleting recently SET key '{key}'");
arguments = new string[] { key };
}
}
}
W poniższym przykładzie pokazano wyzwalacz pub/sub dla zdarzenia zestawu z powiązaniem wyjściowym z tym samym wystąpieniem usługi Redis. Zdarzenie set wyzwala pamięć podręczną, a powiązanie wyjściowe zwraca polecenie usuwania dla klucza, który wyzwolił funkcję.
package com.function.RedisOutputBinding;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.redis.annotation.*;
public class SetDeleter {
@FunctionName("SetDeleter")
@RedisOutput(
name = "value",
connection = "redisConnectionString",
command = "DEL")
public String run(
@RedisPubSubTrigger(
name = "key",
connection = "redisConnectionString",
channel = "__keyevent@0__:set")
String key,
final ExecutionContext context) {
context.getLogger().info("Deleting recently SET key '" + key + "'");
return key;
}
}
W tym przykładzie pokazano wyzwalacz pub/sub dla zdarzenia zestawu z powiązaniem wyjściowym z tym samym wystąpieniem usługi Redis. Zdarzenie set wyzwala pamięć podręczną, a powiązanie wyjściowe zwraca polecenie usuwania dla klucza, który wyzwolił funkcję.
Powiązania są definiowane w pliku "function.json":
{
"bindings": [
{
"type": "redisPubSubTrigger",
"connection": "redisConnectionString",
"channel": "__keyevent@0__:set",
"name": "key",
"direction": "in"
},
{
"type": "redis",
"connection": "redisConnectionString",
"command": "DEL",
"name": "$return",
"direction": "out"
}
],
"scriptFile": "index.js"
}
Ten kod z index.js
pliku pobiera klucz z wyzwalacza i zwraca go do powiązania wyjściowego w celu usunięcia buforowanego elementu.
module.exports = async function (context, key) {
context.log("Deleting recently SET key '" + key + "'");
return key;
}
W tym przykładzie pokazano wyzwalacz pub/sub dla zdarzenia zestawu z powiązaniem wyjściowym z tym samym wystąpieniem usługi Redis. Zdarzenie set wyzwala pamięć podręczną, a powiązanie wyjściowe zwraca polecenie usuwania dla klucza, który wyzwolił funkcję.
Powiązania są zdefiniowane w tym function.json
pliku:
{
"bindings": [
{
"type": "redisPubSubTrigger",
"connection": "redisLocalhost",
"channel": "__keyevent@0__:set",
"name": "key",
"direction": "in"
},
{
"type": "redis",
"connection": "redisLocalhost",
"command": "DEL",
"name": "retVal",
"direction": "out"
}
],
"scriptFile": "run.ps1"
}
Ten kod z run.ps1
pliku pobiera klucz z wyzwalacza i przekazuje go do powiązania wyjściowego w celu usunięcia buforowanego elementu.
param($key, $TriggerMetadata)
Write-Host "Deleting recently SET key '$key'"
Push-OutputBinding -Name retVal -Value $key
W tym przykładzie pokazano wyzwalacz pub/sub dla zdarzenia zestawu z powiązaniem wyjściowym z tym samym wystąpieniem usługi Redis. Zdarzenie set wyzwala pamięć podręczną, a powiązanie wyjściowe zwraca polecenie usuwania dla klucza, który wyzwolił funkcję.
Powiązania są zdefiniowane w tym function.json
pliku:
{
"bindings": [
{
"type": "redisPubSubTrigger",
"connection": "redisLocalhost",
"channel": "__keyevent@0__:set",
"name": "key",
"direction": "in"
},
{
"type": "redis",
"connection": "redisLocalhost",
"command": "DEL",
"name": "$return",
"direction": "out"
}
],
"scriptFile": "__init__.py"
}
Ten kod z __init__.py
pliku pobiera klucz z wyzwalacza i przekazuje go do powiązania wyjściowego w celu usunięcia buforowanego elementu.
import logging
def main(key: str) -> str:
logging.info("Deleting recently SET key '" + key + "'")
return key
Atrybuty
Uwaga
Wszystkie polecenia są obsługiwane dla tego powiązania.
Sposób definiowania parametru powiązania wyjściowego zależy od tego, czy funkcje języka C# są uruchamiane w procesie przetwarzania, czy w izolowanym procesie roboczym.
Powiązanie wyjściowe jest definiowane w następujący sposób:
Definicja | Przykład | opis |
---|---|---|
W parametrze out |
[Redis(<Connection>, <Command>)] out string <Return_Variable> |
Zmienna ciągu zwracana przez metodę jest wartością klucza używaną przez powiązanie do wykonania polecenia względem określonej pamięci podręcznej. |
W takim przypadku typ zwracany przez metodę jest wartością klucza używaną przez powiązanie do wykonania polecenia względem określonej pamięci podręcznej.
Jeśli funkcja ma wiele powiązań wyjściowych, można zamiast tego zastosować atrybut powiązania do właściwości typu, który jest wartością klucza, której powiązanie używa do wykonania polecenia względem określonej pamięci podręcznej. Aby uzyskać więcej informacji, zobacz Wiele powiązań wyjściowych.
Niezależnie od trybu procesu języka C# te same właściwości są obsługiwane przez atrybut powiązania wyjściowego:
Właściwość atrybutu | opis |
---|---|
Connection |
Nazwa ustawienia aplikacji, które zawiera parametry połączenia pamięci podręcznej, takie jak:<cacheName>.redis.cache.windows.net:6380,password... |
Command |
Polecenie redis-cli do wykonania w pamięci podręcznej, takie jak: DEL . |
Adnotacje
Adnotacja RedisOutput
obsługuje następujące właściwości:
Właściwości | opis |
---|---|
name |
Nazwa określonego powiązania wejściowego. |
connection |
Nazwa ustawienia aplikacji, które zawiera parametry połączenia pamięci podręcznej, takie jak:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Polecenie redis-cli do wykonania w pamięci podręcznej, takie jak: DEL . |
Konfigurowanie
W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w pliku function.json .
Właściwości | opis |
---|---|
name |
Nazwa określonego powiązania wejściowego. |
connection |
Nazwa ustawienia aplikacji, które zawiera parametry połączenia pamięci podręcznej, takie jak:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Polecenie redis-cli do wykonania w pamięci podręcznej, takie jak: DEL . |
Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.
Użycie
Dane wyjściowe zwracają ciąg, który jest kluczem wpisu pamięci podręcznej, na którym zastosowano określone polecenie.
Istnieją trzy typy połączeń, które są dozwolone z wystąpienia usługi Azure Functions do pamięci podręcznej Redis Cache we wdrożeniach. W przypadku programowania lokalnego można również używać wpisów tajnych jednostki usługi. Użyj polecenia appsettings
, aby skonfigurować każdy z następujących typów uwierzytelniania klienta, przy założeniu Connection
, że parametr został ustawiony na Redis
wartość w funkcji .
Powiązana zawartość
- Wprowadzenie do usługi Azure Functions
- Samouczek: rozpoczynanie pracy z wyzwalaczami usługi Azure Functions w usłudze Azure Cache for Redis
- Samouczek: tworzenie pamięci podręcznej za pomocą usługi Azure Functions i usługi Azure Cache for Redis
- Parametry połączenia usługi Redis
- Wiele powiązań wyjściowych