Azure İşlevleri için RedisStreamTrigger
bir RedisStreamTrigger
akıştan yeni girdileri okur ve bu öğeleri işleve gösterir.
Katman | Temel | Standart, Premium | Enterprise, Enterprise Flash |
---|---|---|---|
Akışlar | 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.
Yürütme modeli | Açıklama |
---|---|
Yalıtılmış çalışan modeli | İşlev kodunuz ayrı bir .NET çalışan işleminde çalışır. Desteklenen .NET ve .NET Framework sürümleriyle kullanın. Daha fazla bilgi edinmek için bkz . .NET yalıtılmış çalışan işlemi işlevleri geliştirme. |
İşlem içi model | İşlev kodunuz İşlevler konak işlemiyle aynı işlemde çalışır. .NET'in yalnızca Uzun Süreli Destek (LTS) sürümlerini destekler. Daha fazla bilgi edinmek için bkz . .NET sınıf kitaplığı işlevleri geliştirme. |
using Microsoft.Extensions.Logging;
namespace Microsoft.Azure.Functions.Worker.Extensions.Redis.Samples.RedisStreamTrigger
{
internal class SimpleStreamTrigger
{
private readonly ILogger<SimpleStreamTrigger> logger;
public SimpleStreamTrigger(ILogger<SimpleStreamTrigger> logger)
{
this.logger = logger;
}
[Function(nameof(SimpleStreamTrigger))]
public void Run(
[RedisStreamTrigger(Common.connectionStringSetting, "streamKey")] string entry)
{
logger.LogInformation(entry);
}
}
}
package com.function.RedisStreamTrigger;
import com.microsoft.azure.functions.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.redis.annotation.*;
public class SimpleStreamTrigger {
@FunctionName("SimpleStreamTrigger")
public void run(
@RedisStreamTrigger(
name = "req",
connection = "redisConnectionString",
key = "streamTest",
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": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"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 | ConvertTo-Json)
'den function.json
bağlama verileri aşağıdadır:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
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.
Bu örnek, dosyadaki function.json
bağlama verileriyle aynı __init__.py
dosyayı kullanır.
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": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Özellikler
Parametreler | 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. | Yes | |
PollingIntervalInMs |
Redis sunucusunun milisaniye cinsinden yoklama sıklıkları. | İsteğe bağlı | 1000 |
MessagesPerWorker |
Her işlev çalışanının işlemesi gereken ileti sayısı. İşlevin kaç çalışana ölçeklendirilmesi gerektiğini belirlemek için kullanılır. | İsteğe bağlı | 100 |
Count |
Bir kerede Redis'ten çekecek öğe sayısı. | İsteğe bağlı | 10 |
DeleteAfterProcess |
İşlevin işlendikten sonra akış girdilerini silip silmediğini gösterir. | İsteğe bağlı | false |
Ek Açıklamalar
Parametre | Açıklama | Zorunlu | Varsayılan |
---|---|---|---|
name |
entry |
Yes | |
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. | Yes | |
pollingIntervalInMs |
Redis'i milisaniye cinsinden yoklama sıklığı. | İsteğe bağlı | 1000 |
messagesPerWorker |
Her işlev çalışanının işlemesi gereken ileti sayısı. İşlevin kaç çalışana ölçeklendirilmesi gerektiğini belirlemek için kullanılır. | İsteğe bağlı | 100 |
count |
Redis'ten bir kerede okunacak girdilerin sayısı. Girdiler paralel olarak işlenir. | İsteğe bağlı | 10 |
deleteAfterProcess |
İşlev çalıştırıldıktan sonra akış girişlerinin silinip silinmeyeceği. | İsteğe bağlı | false |
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 Özellikleri | Açıklama | Zorunlu | Varsayılan |
---|---|---|---|
type |
Yes | ||
deleteAfterProcess |
İsteğe bağlı | false |
|
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. | Yes | |
pollingIntervalInMs |
Redis'i milisaniye cinsinden yoklama sıklık. | İsteğe bağlı | 1000 |
messagesPerWorker |
(isteğe bağlı) Her işlev çalışanının işlemesi gereken ileti sayısı. İşlevin kaç çalışanı ölçeklendirmesi 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 |
name |
Yes | ||
direction |
Yes |
Tam örnekler için Örnek bölümüne bakın.
Kullanım
RedisStreamTrigger
Azure İşlevi bir akıştan yeni girdileri okur ve bu girişleri işleve gösterir.
Tetikleyici, Redis'i yapılandırılabilir bir sabit aralıkta yoklar ve akıştan öğeleri okumak için kullanır XREADGROUP
.
bir işlevin tüm örnekleri için tüketici grubu işlevin adıdır, yani SimpleStreamTrigger
StreamTrigger örneği için.
Her işlev örneği, ölçeği genişletilen işlev örneklerinin WEBSITE_INSTANCE_ID
akıştan aynı iletileri okumadığından emin olmak için grup içinde tüketici adı olarak kullanmak üzere veya rastgele bir GUID oluşturur.
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. |
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin