Pengikatan output Azure Cache for Redis untuk Azure Functions
Pengikatan output Azure Cache for Redis memungkinkan Anda mengubah kunci dalam cache berdasarkan serangkaian pemicu yang tersedia pada cache.
Untuk informasi tentang pengaturan dan detail konfigurasi, lihat gambaran umum.
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
Fungsi C# dapat dibuat dengan menggunakan salah satu mode C# berikut:
- Model pekerja terisolasi: Fungsi C# terkompilasi yang berjalan dalam proses pekerja yang terisolasi dari runtime. Proses pekerja terisolasi diperlukan untuk mendukung fungsi C# yang berjalan pada versi LTS dan non-LTS .NET dan .NET Framework. Ekstensi untuk fungsi proses pekerja yang terisolasi menggunakan
Microsoft.Azure.Functions.Worker.Extensions.*
namespace layanan. - Model dalam proses: Fungsi C# yang dikompilasi yang berjalan dalam proses yang sama dengan runtime Functions. Dalam variasi model ini, Functions dapat dijalankan menggunakan scripting C#, yang didukung terutama untuk pengeditan portal C#. Ekstensi untuk fungsi dalam proses menggunakan
Microsoft.Azure.WebJobs.Extensions.*
namespace layanan.
Contoh berikut menunjukkan pemicu pub/sub pada peristiwa yang ditetapkan dengan pengikatan output ke instans Redis yang sama. Peristiwa yang ditetapkan memicu cache dan pengikatan output mengembalikan perintah hapus untuk kunci yang memicu fungsi.
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.
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 };
}
}
}
Contoh berikut menunjukkan pemicu pub/sub pada peristiwa yang ditetapkan dengan pengikatan output ke instans Redis yang sama. Peristiwa yang ditetapkan memicu cache dan pengikatan output mengembalikan perintah hapus untuk kunci yang memicu fungsi.
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;
}
}
Contoh ini menunjukkan pemicu pub/sub pada peristiwa yang ditetapkan dengan pengikatan output ke instans Redis yang sama. Peristiwa yang ditetapkan memicu cache dan pengikatan output mengembalikan perintah hapus untuk kunci yang memicu fungsi.
Pengikatan ditentukan dalam file 'function.json'' ini:
{
"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"
}
Kode dari index.js
file ini mengambil kunci dari pemicu dan mengembalikannya ke pengikatan output untuk menghapus item yang di-cache.
module.exports = async function (context, key) {
context.log("Deleting recently SET key '" + key + "'");
return key;
}
Contoh ini menunjukkan pemicu pub/sub pada peristiwa yang ditetapkan dengan pengikatan output ke instans Redis yang sama. Peristiwa yang ditetapkan memicu cache dan pengikatan output mengembalikan perintah hapus untuk kunci yang memicu fungsi.
Pengikatan ditentukan dalam file ini function.json
:
{
"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"
}
Kode dari run.ps1
file ini mengambil kunci dari pemicu dan meneruskannya ke pengikatan output untuk menghapus item yang di-cache.
param($key, $TriggerMetadata)
Write-Host "Deleting recently SET key '$key'"
Push-OutputBinding -Name retVal -Value $key
Contoh ini menunjukkan pemicu pub/sub pada peristiwa yang ditetapkan dengan pengikatan output ke instans Redis yang sama. Peristiwa yang ditetapkan memicu cache dan pengikatan output mengembalikan perintah hapus untuk kunci yang memicu fungsi.
Pengikatan ditentukan dalam file ini function.json
:
{
"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"
}
Kode dari __init__.py
file ini mengambil kunci dari pemicu dan meneruskannya ke pengikatan output untuk menghapus item yang di-cache.
import logging
def main(key: str) -> str:
logging.info("Deleting recently SET key '" + key + "'")
return key
Atribut
Catatan
Semua perintah didukung untuk pengikatan ini.
Cara Anda menentukan parameter pengikatan output tergantung pada apakah fungsi C# Anda berjalan dalam proses atau dalam proses pekerja yang terisolasi.
Pengikatan output didefinisikan dengan cara ini:
Definisi | Contoh | Deskripsi |
---|---|---|
out Pada parameter |
[Redis(<Connection>, <Command>)] out string <Return_Variable> |
Variabel string yang dikembalikan oleh metode adalah nilai kunci yang digunakan pengikatan untuk menjalankan perintah terhadap cache tertentu. |
Dalam hal ini, jenis yang dikembalikan oleh metode adalah nilai kunci yang digunakan pengikatan untuk menjalankan perintah terhadap cache tertentu.
Ketika fungsi Anda memiliki beberapa pengikatan output, Anda dapat menerapkan atribut pengikatan ke properti jenis yang merupakan nilai kunci, yang digunakan pengikatan untuk menjalankan perintah terhadap cache tertentu. Untuk informasi selengkapnya, lihat Beberapa pengikatan output.
Terlepas dari mode proses C#, properti yang sama didukung oleh atribut pengikatan output:
Properti atribut | Deskripsi |
---|---|
Connection |
Nama pengaturan aplikasi yang berisi string koneksi cache, seperti:<cacheName>.redis.cache.windows.net:6380,password... |
Command |
Perintah redis-cli yang akan dijalankan pada cache, seperti: DEL . |
Anotasi
Anotasi RedisOutput
mendukung properti ini:
Properti | Deskripsi |
---|---|
name |
Nama pengikatan input tertentu. |
connection |
Nama pengaturan aplikasi yang berisi string koneksi cache, seperti:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Perintah redis-cli yang akan dijalankan pada cache, seperti: DEL . |
Konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda atur di file function.json.
Properti | Deskripsi |
---|---|
name |
Nama pengikatan input tertentu. |
connection |
Nama pengaturan aplikasi yang berisi string koneksi cache, seperti:<cacheName>.redis.cache.windows.net:6380,password... |
command |
Perintah redis-cli yang akan dijalankan pada cache, seperti: DEL . |
Lihat Bagian contoh untuk contoh lengkapnya.
Penggunaan
Output mengembalikan string, yang merupakan kunci entri cache tempat menerapkan perintah tertentu.
Ada tiga jenis koneksi yang diizinkan dari instans Azure Functions ke Redis Cache dalam penyebaran Anda. Untuk pengembangan lokal, Anda juga dapat menggunakan rahasia perwakilan layanan. appsettings
Gunakan untuk mengonfigurasi masing-masing jenis autentikasi klien berikut, dengan asumsi Connection
diatur ke Redis
dalam fungsi.
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