Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan pengikatan output RabbitMQ untuk mengirim pesan ke antrean RabbitMQ.
Catatan
Pengikatan RabbitMQ hanya didukung penuh pada paket Elastic Premium dan Dedicated (App Service ). Paket Konsumsi dan Konsumsi Fleksibel belum didukung.
Pengikatan RabbitMQ tidak didukung oleh runtime Azure Functions v1.x.
Untuk informasi tentang pengaturan dan detail konfigurasi, lihat gambaran umum.
Contoh
Anda dapat membuat fungsi C# 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 dukungan jangka panjang (LTS) dan non-LTS untuk .NET dan .NET Framework.
- Model dalam proses: Fungsi C# terkompilasi yang berjalan dalam proses yang sama dengan runtime Azure Functions.
- Skrip C#: Digunakan terutama saat Anda membuat fungsi C# di portal Azure.
Penting
Dukungan akan berakhir untuk model dalam proses pada 10 November 2026. Kami sangat menyarankan Agar Anda memigrasikan aplikasi Anda ke model pekerja yang terisolasi untuk dukungan penuh.
[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
FunctionContext context)
{
var logger = context.GetLogger(nameof(RabbitMQFunction));
logger.LogInformation(item);
var message = $"Output message created at {DateTime.Now}";
return message;
}
Fungsi Java berikut menggunakan @RabbitMQOutput anotasi dari jenis Java RabbitMQ untuk menjelaskan konfigurasi pengikatan output antrean RabbitMQ. Fungsi ini mengirim pesan ke antrean RabbitMQ ketika dipicu oleh TimerTrigger setiap 5 menit.
@FunctionName("RabbitMQOutputExample")
public void run(
@TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
@RabbitMQOutput(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "hello") OutputBinding<String> output,
final ExecutionContext context) {
output.setValue("Some string");
}
Contoh berikut menunjukkan pengikatan output RabbitMQ dalam file function.json dan fungsi skrip JavaScript yang menggunakan pengikatan. Fungsi ini berbunyi dalam pesan dari pemicu HTTP dan mengeluarkannya ke antrian RabbitMQ.
Berikut data pengikatan dalam file function.json:
{
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"authLevel": "function",
"name": "input",
"methods": [
"get",
"post"
]
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
Berikut kode JavaScript:
module.exports = async function (context, input) {
context.bindings.outputMessage = input.body;
};
Contoh berikut menunjukkan pengikatan output RabbitMQ dalam file function.json dan fungsi skrip Python yang menggunakan pengikatan. Fungsi ini berbunyi dalam pesan dari pemicu HTTP dan mengeluarkannya ke antrian RabbitMQ.
Berikut data pengikatan dalam file function.json:
{
"scriptFile": "__init__.py",
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "$return"
},
{
"type": "rabbitMQ",
"name": "outputMessage",
"queueName": "outputQueue",
"connectionStringSetting": "rabbitMQConnectionAppSetting",
"direction": "out"
}
]
}
Dalam _init_.py:
import azure.functions as func
def main(req: func.HttpRequest, outputMessage: func.Out[str]) -> func.HttpResponse:
input_msg = req.params.get('message')
outputMessage.set(input_msg)
return 'OK'
Atribut
Baik proses pekerja terisolasi maupun pustaka C# dalam proses menggunakan atribut untuk menentukan pengikatan output yang menulis ke antrean RabbitMQ.
RabbitMQOutputAttribute Konstruktor menerima parameter ini:
| Pengaturan | Deskripsi |
|---|---|
| QueueName | Nama antrean untuk menerima pesan. |
| HostName | Parameter ini tidak lagi didukung dan diabaikan. Ini akan dihapus dalam versi mendatang. |
| ConnectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi untuk server RabbitMQ Anda. Pengaturan ini hanya mengambil nama kunci pengaturan aplikasi, Anda tidak dapat langsung mengatur nilai string koneksi. Untuk informasi selengkapnya, lihat Koneksi. |
| Setelan NamaPengguna | Parameter ini tidak lagi didukung dan diabaikan. Ini akan dihapus dalam versi mendatang. |
| Pengaturan Kata Sandi | Parameter ini tidak lagi didukung dan diabaikan. Ini akan dihapus dalam versi mendatang. |
| Pelabuhan | Mendapatkan atau mengatur port yang digunakan. Defaultnya adalah 0, yang menunjuk ke pengaturan port default klien RabbitMQ 5672. |
| DisableCertificateValidation | Mendapatkan atau menetapkan nilai yang menunjukkan apakah validasi sertifikat harus dinonaktifkan. Tidak disarankan untuk produksi. Tidak berlaku saat SSL dinonaktifkan. |
Anotasi
Anotasi RabbitMQOutput memungkinkan Anda membuat fungsi yang berjalan saat pesan RabbitMQ dibuat.
Anotasi tersebut mendukung pengaturan konfigurasi berikut:
| Pengaturan | Deskripsi |
|---|---|
| queueName | Nama antrean untuk menerima pesan. |
| connectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi untuk server RabbitMQ Anda. Pengaturan ini hanya mengambil nama kunci pengaturan aplikasi, Anda tidak dapat langsung mengatur nilai string koneksi. Untuk informasi selengkapnya, lihat Koneksi. |
| disableCertificateValidation | Mendapatkan atau menetapkan nilai yang menunjukkan apakah validasi sertifikat harus dinonaktifkan. Tidak disarankan untuk produksi. Tidak berlaku saat SSL dinonaktifkan. |
Konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda atur di file function.json.
| Properti function.json | Deskripsi |
|---|---|
| jenis | Harus diatur ke RabbitMQ. |
| arah | Harus diatur ke out. |
| nama | Nama variabel yang mewakili antrean dalam kode fungsi. |
| queueName | Nama antrean untuk mengirim pesan. |
| connectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi untuk server RabbitMQ Anda. Pengaturan ini hanya mengambil nama kunci pengaturan aplikasi, Anda tidak dapat langsung mengatur nilai string koneksi. Untuk informasi selengkapnya, lihat Koneksi. |
| disableCertificateValidation | Mendapatkan atau menetapkan nilai yang menunjukkan apakah validasi sertifikat harus dinonaktifkan. Tidak disarankan untuk produksi. Tidak berlaku saat SSL dinonaktifkan. |
Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values.
Lihat Bagian contoh untuk contoh lengkapnya.
Penggunaan
Jenis parameter yang didukung oleh pemicu RabbitMQ, bergantung pada versi runtime Functions, versi paket ekstensi, dan modalitas C# yang digunakan.
Pengikatan RabbitMQ saat ini hanya mendukung jenis string dan objek yang dapat diserialisasikan saat berjalan dalam proses pekerja yang terisolasi.
Gunakan jenis parameter berikut untuk pengikatan output:
-
byte[]- Jika nilai parameter null ketika fungsi keluar, Functions tidak membuat pesan. -
string- Jika nilai parameter null ketika fungsi keluar, Functions tidak membuat pesan. -
POJO- Jika nilai parameter tidak diformat sebagai objek Java, kesalahan akan diterima.
Pesan antrean tersedia melalui context.bindings.<NAME>, yang mana <NAME> cocok dengan nama yang ditentukan di function.json. Jika payload adalah JSON, nilai serinya dibatalkan menjadi objek.
Connections
Penting
Pengikatan RabbitMQ tidak mendukung autentikasi Microsoft Entra dan identitas terkelola. Anda dapat menggunakan Azure Key Vault untuk mengelola string koneksi RabbitMQ Anda secara terpusat. Untuk mempelajari selengkapnya, lihat Mengelola Koneksi.
Dimulai dengan ekstensi versi 2.x, hostName, userNameSetting, dan passwordSetting tidak lagi didukung untuk menentukan koneksi ke server RabbitMQ. Anda harus menggunakan connectionStringSetting.
Properti connectionStringSetting hanya dapat menerima nama pasangan kunci-nilai dalam pengaturan aplikasi. Anda tidak dapat langsung mengatur nilai string koneksi dalam pengikatan.
Misalnya, ketika Anda telah mengatur connectionStringSetting ke rabbitMQConnection dalam definisi pengikatan, aplikasi fungsi Anda harus memiliki pengaturan aplikasi bernama rabbitMQConnection yang mengembalikan nilai koneksi seperti amqp://myuser:***@contoso.rabbitmq.example.com:5672 atau referensi Azure Key Vault.
Saat berjalan secara lokal, Anda juga harus memiliki nilai kunci untuk connectionStringSetting ditentukan dalam file local.settings.json Anda. Jika tidak, aplikasi Anda tidak dapat terhubung ke layanan dari komputer lokal Anda dan terjadi kesalahan.