Azure İşlevleri için RedisListTrigger
bir RedisListTrigger
listeden yeni öğeler açar ve bu girdileri işleve gösterir.
Redis için Azure Cache tetikleyicileri ve bağlamaları hakkında daha fazla bilgi için Azure İşlevleri için Redis Uzantısı.
İşlev tetikleyicileri için kullanılabilirlik kapsamı
Katman | Temel | Standart, Premium | Enterprise, Enterprise Flash |
---|---|---|---|
Listeler | Yes | Evet | Yes |
Ö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
Ö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.
Aşağıdaki örnek anahtarını listTest
yoklar:
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.Functions.Worker.Extensions.Redis.Samples.RedisListTrigger
{
public class SimpleListTrigger
{
private readonly ILogger<SimpleListTrigger> logger;
public SimpleListTrigger(ILogger<SimpleListTrigger> logger)
{
this.logger = logger;
}
[Function(nameof(SimpleListTrigger))]
public void Run(
[RedisListTrigger(Common.connectionStringSetting, "listTest")] string entry)
{
logger.LogInformation(entry);
}
}
}
Aşağıdaki örnek, konumundaki bir localhost Redis örneğindeki redisLocalhost
anahtarı listTest
yoklar:
package com.function.RedisListTrigger;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.redis.annotation.*;
public class SimpleListTrigger {
@FunctionName("SimpleListTrigger")
public void run(
@RedisListTrigger(
name = "req",
connection = "redisConnectionString",
key = "listTest",
pollingIntervalInMs = 1000,
maxBatchSize = 1)
String message,
final ExecutionContext context) {
context.getLogger().info(message);
}
}
Bu örnek, dosyadaki function.json
bağlama verileriyle aynı index.js
dosyayı kullanır.
Dosya şu şekildedir index.js
:
module.exports = async function (context, entry) {
context.log(entry);
}
'den function.json
bağlama verileri aşağıdadır:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
Bu örnek, dosyadaki function.json
bağlama verileriyle aynı run.ps1
dosyayı kullanır.
Dosya şu şekildedir run.ps1
:
param($entry, $TriggerMetadata)
Write-Host $entry
'den function.json
bağlama verileri aşağıdadır:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
Bu örnek, dosyadaki function.json
bağlama verileriyle aynı __init__.py
dosyayı kullanır.
Python v1 programlama modeli, işlev klasöründeki ayrı bir function.json dosyasında bağlamaları tanımlamanızı gerektirir. Daha fazla bilgi için bkz . Python geliştirici kılavuzu.
Dosya şu şekildedir __init__.py
:
import logging
def main(entry: str):
logging.info(entry)
'den function.json
bağlama verileri aşağıdadır:
{
"bindings": [
{
"type": "redisListTrigger",
"listPopFromBeginning": true,
"connection": "redisConnectionString",
"key": "listTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Özellikler
Parametre | Açıklama | Zorunlu | Varsayılan |
---|---|---|---|
Connection |
Önbellek bağlantı dizesi içeren uygulama ayarının adı, örneğin:<cacheName>.redis.cache.windows.net:6380,password... |
Yes | |
Key |
Okunacak anahtar. Bu alan kullanılarak INameResolver çözümlenebilir. |
Yes | |
PollingIntervalInMs |
Redis'i milisaniye cinsinden yoklama sıklık. | İsteğe bağlı | 1000 |
MessagesPerWorker |
Her işlev örneğinin işlemesi gereken ileti sayısı. İşlevin kaç örneğe ölçeklendirilmesi gerektiğini belirlemek için kullanılır. | İsteğe bağlı | 100 |
Count |
Redis'ten bir kerede açılacak girdi sayısı. Girdiler paralel olarak işlenir. Yalnızca ve RPOP bağımsız değişkeni kullanılarak COUNT Redis 6.2+ üzerinde LPOP desteklenir. |
İsteğe bağlı | 10 |
ListPopFromBeginning |
kullanarak girişlerin en baştan LPOP mı yoksa kullanarak sonundan RPOP mı pop girileceğini belirler. |
İsteğe bağlı | true |
Ek Açıklamalar
Parametre | Açıklama | Zorunlu | Varsayılan |
---|---|---|---|
name |
"entry" | ||
connection |
Önbellek bağlantı dizesi içeren uygulama ayarının adı, örneğin:<cacheName>.redis.cache.windows.net:6380,password... |
Yes | |
key |
Bu alan INameResolver kullanılarak çözümlenebilir. | Yes | |
pollingIntervalInMs |
Redis'i milisaniye cinsinden yoklama sıklık. | İsteğe bağlı | 1000 |
messagesPerWorker |
Her işlev örneğinin işlemesi gereken ileti sayısı. İşlevin kaç örneğe ölçeklendirilmesi gerektiğini belirlemek için kullanılır. | İsteğe bağlı | 100 |
count |
Redis'ten bir kerede okunacak girdilerin sayısı. Bunlar paralel olarak işlenir. | İsteğe bağlı | 10 |
listPopFromBeginning |
İşlev çalıştırıldıktan sonra akış girişlerinin silinip silinmeyeceği. | Yes | true |
Yapılandırma
Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.
function.json Özelliği | Açıklama | İsteğe bağlı | Varsayılan |
---|---|---|---|
type |
Tetikleyicinin adı. | Hayır | |
listPopFromBeginning |
İşlev çalıştırıldıktan sonra akış girişlerinin silinip silinmeyeceği. true olarak ayarlayın. |
Yes | true |
connection |
Önbellek bağlantı dizesi içeren uygulama ayarının adı, örneğin:<cacheName>.redis.cache.windows.net:6380,password... |
Hayır | |
key |
Bu alan kullanılarak INameResolver çözümlenebilir. |
Hayır | |
pollingIntervalInMs |
Redis'i milisaniye cinsinden yoklama sıklık. | Yes | 1000 |
messagesPerWorker |
Her işlev örneğinin işlemesi gereken ileti sayısı. İşlevin kaç örneğe ölçeklendirilmesi gerektiğini belirlemek için kullanılır. | Yes | 100 |
count |
Önbellekten bir kerede okunacak girdilerin sayısı. Girdiler paralel olarak işlenir. | Yes | 10 |
name |
? | Yes | |
direction |
in olarak ayarlayın. |
Hayır |
Tam örnekler için Örnek bölümüne bakın.
Kullanım
bir RedisListTrigger
listeden yeni öğeler açar ve bu girdileri işleve gösterir. Tetikleyici, Redis'i yapılandırılabilir bir sabit aralıkta yoklar ve listelerden girdileri açmak için ve RPOP
kullanırLPOP
.
Type | Açıklama |
---|---|
byte[] |
Kanaldan gelen ileti. |
string |
Kanaldan gelen ileti. |
Custom |
Tetikleyici, bir kanalındaki string iletiyi özel bir türe eşlemek için Json.NET serileştirme kullanır. |