Azure İşlevleri için çıkış bağlamasını Redis için Azure Cache
Redis için Azure Cache çıkış bağlamaları, önbellekteki kullanılabilir tetikleyici kümesini temel alarak önbellekteki anahtarları değiştirmenize olanak tanır.
Kurulum ve yapılandırma ayrıntıları hakkında bilgi için genel bakışa bakın.
Önemli
İşlevler için Node.js v4 modeli henüz Redis için Azure Cache uzantısı tarafından desteklenmiyor. v4 modelinin nasıl çalıştığı hakkında daha fazla bilgi için Azure İşlevleri Node.js geliştirici kılavuzuna bakın. v3 ile v4 arasındaki farklar hakkında daha fazla bilgi edinmek için geçiş kılavuzuna bakın.
Önemli
İşlevler için Python v2 modeli henüz Redis için Azure Cache uzantısı tarafından desteklenmiyor. v2 modelinin nasıl çalıştığı hakkında daha fazla bilgi için Azure İşlevleri Python geliştirici kılavuzuna bakın.
Örnek
C# işlevi aşağıdaki C# modlarından biri kullanılarak oluşturulabilir:
- Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. LTS ve .NET ve .NET Framework dışındaki sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış çalışan işlemi gereklidir. Yalıtılmış çalışan işlemi işlevleri için uzantılar ad alanlarını kullanır
Microsoft.Azure.Functions.Worker.Extensions.*
. - İşlem içi model: İşlevler çalışma zamanıyla aynı işlemde çalışan derlenmiş C# işlevi. Bu modelin bir varyasyonunda, İşlevler öncelikle C# portalı düzenleme için desteklenen C# betiği kullanılarak çalıştırılabilir. İşlem içi işlevlerin uzantıları ad alanlarını kullanır
Microsoft.Azure.WebJobs.Extensions.*
.
Aşağıdaki örnekte, aynı Redis örneğine bir çıkış bağlaması olan küme olayında bir pub/sub tetikleyicisi gösterilmektedir. Küme olayı önbelleği tetikler ve çıkış bağlaması işlevi tetikleyen anahtar için bir delete komutu döndürür.
Önemli
.NET işlevleri için, işlem içi model üzerinde yalıtılmış çalışan modelinin kullanılması önerilir. İşlem içi ve yalıtılmış çalışan modellerinin karşılaştırması için bkz. yalıtılmış çalışan modeli ile Azure İşlevleri üzerinde .NET için işlem içi model arasındaki farklar.
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 };
}
}
}
Aşağıdaki örnekte, aynı Redis örneğine bir çıkış bağlaması olan küme olayında bir pub/sub tetikleyicisi gösterilmektedir. Küme olayı önbelleği tetikler ve çıkış bağlaması işlevi tetikleyen anahtar için bir delete komutu döndürür.
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;
}
}
Bu örnekte, aynı Redis örneğine çıkış bağlaması olan küme olayında bir pub/sub tetikleyicisi gösterilmektedir. Küme olayı önbelleği tetikler ve çıkış bağlaması işlevi tetikleyen anahtar için bir delete komutu döndürür.
Bağlamalar bu 'function.json' dosyasında tanımlanır:
{
"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"
}
Dosyadaki index.js
bu kod, anahtarı tetikleyiciden alır ve önbelleğe alınan öğeyi silmek için çıkış bağlamasına döndürür.
module.exports = async function (context, key) {
context.log("Deleting recently SET key '" + key + "'");
return key;
}
Bu örnekte, aynı Redis örneğine çıkış bağlaması olan küme olayında bir pub/sub tetikleyicisi gösterilmektedir. Küme olayı önbelleği tetikler ve çıkış bağlaması işlevi tetikleyen anahtar için bir delete komutu döndürür.
Bağlamalar bu function.json
dosyada tanımlanır:
{
"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"
}
Dosyadaki run.ps1
bu kod, anahtarı tetikleyiciden alır ve önbelleğe alınan öğeyi silmek için çıkış bağlamasına geçirir.
param($key, $TriggerMetadata)
Write-Host "Deleting recently SET key '$key'"
Push-OutputBinding -Name retVal -Value $key
Bu örnekte, aynı Redis örneğine çıkış bağlaması olan küme olayında bir pub/sub tetikleyicisi gösterilmektedir. Küme olayı önbelleği tetikler ve çıkış bağlaması işlevi tetikleyen anahtar için bir delete komutu döndürür.
Bağlamalar bu function.json
dosyada tanımlanır:
{
"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"
}
Dosyadaki __init__.py
bu kod, anahtarı tetikleyiciden alır ve önbelleğe alınan öğeyi silmek için çıkış bağlamasına geçirir.
import logging
def main(key: str) -> str:
logging.info("Deleting recently SET key '" + key + "'")
return key
Özellikler
Not
Bu bağlama için tüm komutlar desteklenir.
Çıkış bağlama parametresini tanımlama yönteminiz, C# işlevlerinizin işlem içinde mi yoksa yalıtılmış bir çalışan işleminde mi çalıştığına bağlıdır.
Çıkış bağlaması şu şekilde tanımlanır:
Tanım | Örnek | Açıklama |
---|---|---|
Bir out parametrede |
[Redis(<Connection>, <Command>)] out string <Return_Variable> |
yöntemi tarafından döndürülen dize değişkeni, bağlamanın komutu belirli bir önbellekte yürütmek için kullandığı bir anahtar değeridir. |
Bu durumda, yöntemi tarafından döndürülen tür, bağlamanın komutu belirli bir önbellekte yürütmek için kullandığı bir anahtar değeridir.
İşlevinizin birden çok çıkış bağlaması olduğunda, bağlama özniteliğini, bağlamanın komutu belirli bir önbellekte yürütmek için kullandığı anahtar değeri olan bir türün özelliğine uygulayabilirsiniz. Daha fazla bilgi için bkz . Birden çok çıkış bağlaması.
C# işlem modundan bağımsız olarak, aynı özellikler çıkış bağlama özniteliği tarafından desteklenir:
Öznitelik özelliği | Açıklama |
---|---|
Connection |
Önbellek bağlantı dizesi içeren uygulama ayarının adı, örneğin:<cacheName>.redis.cache.windows.net:6380,password... |
Command |
Önbellekte yürütülecek redis-cli komutu, örneğin: DEL . |
Ek Açıklamalar
Ek RedisOutput
açıklama şu özellikleri destekler:
Özellik | Açıklama |
---|---|
name |
Belirli giriş bağlamasının adı. |
connection |
Önbellek bağlantı dizesi içeren uygulama ayarının adı, örneğin:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Önbellekte yürütülecek redis-cli komutu, örneğin: DEL . |
Yapılandırma
Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.
Özellik | Açıklama |
---|---|
name |
Belirli giriş bağlamasının adı. |
connection |
Önbellek bağlantı dizesi içeren uygulama ayarının adı, örneğin:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Önbellekte yürütülecek redis-cli komutu, örneğin: DEL . |
Tam örnekler için Örnek bölümüne bakın.
Kullanım
Çıkış, belirli bir komutun uygulandığı önbellek girişinin anahtarı olan bir dize döndürür.
Dağıtımlarınızdaki bir Azure İşlevleri örneğinden Redis Cache'e izin verilen üç tür bağlantı vardır. Yerel geliştirme için hizmet sorumlusu gizli dizilerini de kullanabilirsiniz. işlevinde appsettings
olarak ayarlandığı varsayılarak aşağıdaki istemci kimlik doğrulaması türlerinin Connection
her birini yapılandırmak için Redis
öğesini kullanın.