Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Yönetilen Redis çı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.
İşlev bağlamaları için kullanılabilirlik kapsamı
| Bağlama Türü | Yönetilen Redis'i Azure | Azure Cache for Redis |
|---|---|---|
| Çıktı | Yes | Yes |
Önemli
Azure Yönetilen Redis veya Azure Cache for Redis Kurumsal katmanlarını kullanırken 6380 veya 6379 numaralı bağlantı noktası yerine 10000 numaralı bağlantı noktasını kullanın.
Önemli
İşlevler için Node.js v4 modeli henüz Azure Cache for Redis uzantısı tarafından desteklenmiyor. v4 modelinin nasıl çalıştığı hakkında daha fazla bilgi için Azure Functions 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 Azure Cache for Redis uzantısı tarafından desteklenmiyor. v2 modelinin nasıl çalıştığı hakkında daha fazla bilgi için Azure Functions 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 LTS dışı sürümler .NET ve .NET Framework üzerinde ç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
Microsoft.Azure.Functions.Worker.Extensions.*ad alanlarını kullanır. -
İş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ı
Microsoft.Azure.WebJobs.Extensions.*ad alanlarını kullanır.
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 isolated worker modelinin in-process modeli üzerinden kullanılması önerilir. in-process ve isolated worker modellerinin karşılaştırması için, Azure Functions .NET için isolated worker modeli ile in-process modeli arasındaki farkları görün.
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 '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 connection string içeren application 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 connection string içeren application 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 connection string içeren application 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 Functions ö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.
Önemli
en iyi güvenlik için işlev uygulamanızın mümkünse istekleri önbelleğinize karşı yetkilendirmek için yönetilen kimliklerle Microsoft Entra ID kullanması gerekir. Microsoft Entra ID ve yönetilen kimlikleri kullanarak yetkilendirme, paylaşılan erişim anahtarı yetkilendirmesi üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Önbelleğinizle yönetilen kimlikleri kullanma hakkında daha fazla bilgi için bkz. Önbellek kimlik doğrulaması için Microsoft Entra ID kullanma.
İlgili içerik
Azure Functions Azure Redis - Redis connection string
- Birden çok çıkış bağlaması