RedisStreamTrigger untuk Azure Functions
Membaca RedisStreamTrigger
entri baru dari aliran dan menampilkan elemen-elemen tersebut ke fungsi .
Tingkat | Dasar | Standar, Premium | Enterprise, Enterprise Flash |
---|---|---|---|
Aliran | Ya | Ya | Ya |
Penting
Pemicu Redis saat ini tidak didukung untuk fungsi yang berjalan dalam paket Konsumsi.
Penting
Model Python v2 untuk Functions belum didukung oleh ekstensi Azure Cache for Redis. Untuk detail selengkapnya tentang cara kerja model v2, lihat panduan pengembang Azure Functions Python.
Contoh
Penting
Untuk fungsi .NET, menggunakan model pekerja terisolasi direkomendasikan melalui model dalam proses . Untuk perbandingan model pekerja dalam proses dan terisolasi, lihat perbedaan antara model pekerja yang terisolasi dan model dalam proses untuk .NET di Azure Functions.
Model eksekusi | Deskripsi |
---|---|
Model pekerja terisolasi | Kode fungsi Anda berjalan dalam proses pekerja .NET terpisah. Gunakan dengan versi .NET dan .NET Framework yang didukung. Untuk mempelajari lebih lanjut, lihat Mengembangkan fungsi proses pekerja terisolasi .NET. |
Model dalam proses | Kode fungsi Anda berjalan dalam proses yang sama dengan proses host Azure Functions. Hanya mendukung versi Dukungan Jangka Panjang (LTS) .NET. Untuk mempelajari lebih lanjut, lihat Mengembangkan fungsi pustaka kelas .NET. |
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);
}
}
Sampel ini menggunakan file yang sama index.js
, dengan data pengikatan dalam function.json
file.
Berikut adalah filenya index.js
:
module.exports = async function (context, entry) {
context.log(entry);
}
Dari function.json
, berikut adalah data pengikatan:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "index.js"
}
Sampel ini menggunakan file yang sama run.ps1
, dengan data pengikatan dalam function.json
file.
Berikut adalah filenya run.ps1
:
param($entry, $TriggerMetadata)
Write-Host ($entry | ConvertTo-Json)
Dari function.json
, berikut adalah data pengikatan:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "run.ps1"
}
Model pemrograman Python v1 mengharuskan Anda menentukan pengikatan dalam file function.json terpisah di folder fungsi. Untuk informasi selengkapnya, lihat panduan pengembang Python.
Sampel ini menggunakan file yang sama __init__.py
, dengan data pengikatan dalam function.json
file.
Berikut adalah filenya __init__.py
:
import logging
def main(entry: str):
logging.info(entry)
Dari function.json
, berikut adalah data pengikatan:
{
"bindings": [
{
"type": "redisStreamTrigger",
"connection": "redisConnectionString",
"key": "streamTest",
"pollingIntervalInMs": 1000,
"maxBatchSize": 16,
"name": "entry",
"direction": "in"
}
],
"scriptFile": "__init__.py"
}
Atribut
Parameter | Deskripsi | Wajib diisi | Default |
---|---|---|---|
Connection |
Nama pengaturan aplikasi yang berisi string koneksi cache, seperti:<cacheName>.redis.cache.windows.net:6380,password... |
Ya | |
Key |
Kunci untuk dibaca. | Ya | |
PollingIntervalInMs |
Seberapa sering melakukan polling server Redis dalam milidetik. | Opsional | 1000 |
MessagesPerWorker |
Jumlah pesan yang harus diproses oleh setiap pekerja fungsi. Digunakan untuk menentukan berapa banyak pekerja yang harus diskalakan fungsi. | Opsional | 100 |
Count |
Jumlah elemen yang akan ditarik dari Redis pada satu waktu. | Opsional | 10 |
DeleteAfterProcess |
Menunjukkan apakah fungsi menghapus entri aliran setelah diproses. | Opsional | false |
Anotasi
Parameter | Deskripsi | Wajib diisi | Default |
---|---|---|---|
name |
entry |
Ya | |
connection |
Nama pengaturan aplikasi yang berisi string koneksi cache, seperti:<cacheName>.redis.cache.windows.net:6380,password... |
Ya | |
key |
Kunci untuk dibaca. | Ya | |
pollingIntervalInMs |
Seberapa sering untuk polling Redis, dalam milidetik. | Opsional | 1000 |
messagesPerWorker |
Jumlah pesan yang harus diproses oleh setiap pekerja fungsi. Ini digunakan untuk menentukan berapa banyak pekerja yang harus diskalakan fungsi. | Opsional | 100 |
count |
Jumlah entri yang akan dibaca dari Redis pada satu waktu. Entri diproses secara paralel. | Opsional | 10 |
deleteAfterProcess |
Apakah akan menghapus entri aliran setelah fungsi berjalan. | Opsional | false |
Konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda atur di file function.json.
Properti function.json | Deskripsi | Wajib diisi | Default |
---|---|---|---|
type |
Ya | ||
deleteAfterProcess |
Opsional | false |
|
connection |
Nama pengaturan aplikasi yang berisi string koneksi cache, seperti:<cacheName>.redis.cache.windows.net:6380,password... |
Ya | |
key |
Kunci untuk dibaca. | Ya | |
pollingIntervalInMs |
Seberapa sering untuk polling Redis dalam milidetik. | Opsional | 1000 |
messagesPerWorker |
(opsional) Jumlah pesan yang harus diproses oleh setiap pekerja fungsi. Digunakan untuk menentukan berapa banyak pekerja yang harus diskalakan fungsi | Opsional | 100 |
count |
Jumlah entri yang akan dibaca dari Redis pada satu waktu. Ini diproses secara paralel. | Opsional | 10 |
name |
Ya | ||
direction |
Ya |
Lihat Bagian contoh untuk contoh lengkapnya.
Penggunaan
RedisStreamTrigger
Azure Function membaca entri baru dari aliran dan menampilkan entri tersebut ke fungsi .
Pemicu melakukan polling Redis pada interval tetap yang dapat dikonfigurasi, dan menggunakan XREADGROUP
untuk membaca elemen dari aliran.
Grup konsumen untuk semua instans fungsi adalah nama fungsi, yaitu, SimpleStreamTrigger
untuk sampel StreamTrigger.
Setiap instans WEBSITE_INSTANCE_ID
fungsi menggunakan atau menghasilkan GUID acak untuk digunakan sebagai nama konsumennya dalam grup untuk memastikan bahwa instans fungsi yang diskalakan tidak membaca pesan yang sama dari aliran.
Tipe | Deskripsi |
---|---|
byte[] |
Pesan dari saluran. |
string |
Pesan dari saluran. |
Custom |
Pemicu menggunakan serialisasi Json.NET untuk memetakan pesan dari saluran dari string ke dalam jenis kustom. |
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk