Pemicu dan pengikatan Azure Event Hubs untuk Azure Functions

Artikel ini menjelaskan cara bekerja dengan pengikatan Azure Event Hubs untuk Azure Functions. Azure Functions mendukung pemicu dan pengikatan keluaran untuk Event Hub.

Tindakan Jenis
Menanggapi peristiwa yang dikirim ke aliran peristiwa event hub. Pemicu
Menulis peristiwa ke aliran peristiwa Pengikatan output

Menginstal ekstensi

Paket NuGet ekstensi yang Anda instal bergantung pada mode C# yang digunakan di aplikasi fungsi:

Functions berjalan dalam proses yang sama dengan host Functions. Untuk mempelajari lebih lanjut, lihat Mengembangkan fungsi pustaka kelas C# dengan menggunakan Azure Functions.

Fungsionalitas ekstensi tersebut bervariasi tergantung pada versi ekstensi:

Versi ini memperkenalkan kemampuan untuk menyambungkan menggunakan identitas alih-alih rahasia. Untuk tutorial mengonfigurasi aplikasi fungsi Anda dengan identitas terkelola, lihat tutorial membuat aplikasi fungsi dengan tutorial koneksi berbasis identitas.

Versi ini menggunakan jenis pengikatan Event Hubs Azure.Messaging.EventHubs.EventData yang lebih baru.

Versi ekstensi ini tersedia dengan menginstal paket NuGet versi 5.x.

Memasang bundel

Ekstensi Azure Event Hubs adalah bagian dari bundel ekstensi, yang ditentukan dalam file proyek host.json. Mungkin Anda perlu mengubah bundel ini untuk mengubah versi pengikatan Event Grid, atau jika bundel belum dipasang. Untuk mempelajari lebih lanjut, lihat bundel ekstensi.

Versi ini memperkenalkan kemampuan untuk menyambungkan menggunakan identitas alih-alih rahasia. Untuk tutorial mengonfigurasi aplikasi fungsi Anda dengan identitas terkelola, lihat tutorial membuat aplikasi fungsi dengan tutorial koneksi berbasis identitas.

Anda dapat menambahkan versi ekstensi ini dari bundel ekstensi v3 dengan menambahkan atau mengganti kode berikut dalam file host.json:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Untuk mempelajari selengkapnya, lihat Perbarui ekstensi Anda.

Pengaturan host.json

File host.json berisi pengaturan yang mengontrol perilaku pemicu Pusat Aktivitas. Konfigurasinya berbeda bergantung pada versi ekstensi.

{
    "version": "2.0",
    "extensions": {
        "eventHubs": {
            "maxEventBatchSize" : 10,
            "batchCheckpointFrequency" : 5,
            "prefetchCount" : 300,
            "transportType" : "amqpWebSockets",
            "webProxy" : "https://proxyserver:8080",
            "customEndpointAddress" : "amqps://company.gateway.local",
            "initialOffsetOptions" : {
                "type" : "fromStart",
                "enqueuedTimeUtc" : ""
            },
            "clientRetryOptions":{
                "mode" : "exponential",
                "tryTimeout" : "00:01:00",
                "delay" : "00:00:00.80",
                "maximumDelay" : "00:01:00",
                "maximumRetries" : 3
            }
        }
    }
}  
Properti Default Deskripsi
maxEventBatchSize 10 Jumlah maksimum peristiwa yang akan disertakan dalam batch untuk satu pemanggilan. Harus minimal 1.
batchCheckpointFrequency 1 Jumlah batch yang akan diproses sebelum membuat titik pemeriksaan untuk pusat aktivitas.
prefetchCount 300 Jumlah peristiwa yang akan diminta dari Azure Event Hubs dan disimpan di cache lokal untuk memungkinkan pembacaan tanpa menunggu operasi jaringan
transportType amqpTcp Protokol dan transportasi yang digunakan untuk berkomunikasi dengan Azure Event Hubs. Opsi yang tersedia: amqpTcp, amqpWebSockets
webProxy Proksi yang digunakan untuk berkomunikasi dengan Azure Event Hubs melalui soket web. Proksi tidak dapat digunakan dengan transportasi amqpTcp.
customEndpointAddress Alamat yang digunakan saat membuat koneksi ke Azure Event Hubs, memungkinkan permintaan jaringan dirutekan melalui gateway aplikasi atau jalur lain yang diperlukan untuk lingkungan host. Namespace layanan yang sepenuhnya memenuhi syarat untuk pusat aktivitas masih diperlukan ketika alamat titik akhir kustom digunakan dan harus ditentukan secara eksplisit atau melalui string koneksi.
initialOffsetOptions/type fromStart Lokasi di aliran peristiwa untuk mulai memproses saat titik pemeriksaan tidak ada di penyimpanan. Berlaku untuk semua partisi. Untuk informasi selengkapnya, lihat Dokumentasi OffsetType. Opsi yang tersedia: fromStart, fromEnd, fromEnqueuedTime
initialOffsetOptions/enqueuedTimeUtc Menentukan waktu pengantrean acara di aliran dari tempat mulai memproses. Kapan initialOffsetOptions/type dikonfigurasi sebagai fromEnqueuedTime, pengaturan ini wajib. Mendukung waktu dalam format apa pun yang didukung oleh DateTime.Parse(), seperti 2020-10-26T20:31Z. Untuk kejelasan, Anda juga harus menentukan zona waktu. Ketika zona waktu tidak ditentukan, Functions mengasumsikan zona waktu lokal mesin yang menjalankan aplikasi fungsi, yaitu UTC saat berjalan di Azure.
clientRetryOptions/mode eksponensial Pendekatan yang digunakan untuk menghitung penundaan coba ulang. Mode eksponensial akan mencoba lagi dengan penundaan berdasarkan strategi mundur di mana setiap upaya akan meningkatkan durasi tunggu sebelum mencoba lagi. Mode tetap akan mencoba lagi pada interval tetap dengan durasi yang konsisten pada setiap penundaan. Opsi yang tersedia: exponential, fixed
clientRetryOptions/tryTimeout 00:01:00 Durasi maksimum untuk menunggu operasi Azure Event Hubs hingga selesai, per upaya.
clientRetryOptions/delay 00:00:00.80 Faktor penundaan atau back-off untuk diterapkan di antara upaya coba ulang.
clientRetryOptions/maximumDelay 00:00:01 Penundaan maksimum yang diizinkan antara upaya percobaan ulang.
clientRetryOptions/maximumRetries 3 Jumlah maksimum upaya coba ulang sebelum mempertimbangkan operasi terkait sebagai gagal.

Untuk referensi host.json di Azure Functions 2.x dan versi seterusnya, lihat referensi host.json untuk Azure Functions.

Langkah berikutnya