Menyambungkan ke Azure Bus Layanan dari alur kerja di Azure Logic Apps
Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)
Panduan ini memperlihatkan cara mengakses Azure Bus Layanan dari alur kerja di Azure Logic Apps menggunakan konektor Bus Layanan. Anda kemudian dapat membuat alur kerja otomatis yang berjalan saat dipicu oleh peristiwa di bus layanan atau menjalankan tindakan untuk mengelola item bus layanan, misalnya:
- Pantau saat pesan tiba (selesai otomatis) atau diterima (peek-lock) dalam antrean, topik, dan langganan topik.
- Kirim pesan.
- Buat dan hapus langganan topik.
- Kelola pesan dalam antrean dan langganan topik, misalnya, get, get deferred, complete, defer, abandon, and dead-letter.
- Perbarui kunci pada pesan dan sesi dalam antrean serta langganan topik.
- Tutup sesi dalam antrean dan topik.
Anda dapat menggunakan pemicu yang mendapatkan respons dari Azure Bus Layanan dan membuat output tersedia untuk tindakan lain di alur kerja Anda. Anda juga dapat meminta tindakan lain menggunakan output dari tindakan Azure Service Bus.
Referensi teknis konektor
Konektor Bus Layanan memiliki versi yang berbeda, berdasarkan jenis alur kerja aplikasi logika dan lingkungan host.
Aplikasi logika | Lingkungan | Versi konektor |
---|---|---|
Consumption | Azure Logic Apps multipenyewa | Konektor terkelola, yang muncul di galeri konektor di bawah Bersama Runtime>. Catatan: Bus Layanan pemicu konektor terkelola mengikuti pola pemicu polling panjang, yang berarti bahwa pemicu secara berkala memeriksa pesan dalam antrean atau langganan topik. Untuk informasi selengkapnya, tinjau dokumentasi berikut: - referensi konektor terkelola Bus Layanan - Konektor terkelola di Azure Logic Apps |
Standard | Azure Logic Apps penyewa tunggal dan Lingkungan App Service v3 (hanya paket Windows) | Konektor terkelola (dihosting Azure), yang muncul di galeri konektor di bawah Runtime>Shared, dan konektor bawaan, yang muncul di galeri konektor di bawah Runtime>In App dan berbasis penyedia layanan. Pemicu konektor terkelola Bus Layanan mengikuti pola pemicu polling panjang, yang berarti bahwa pemicu secara berkala memeriksa pesan dalam antrean atau langganan topik. Pemicu non-sesi konektor bawaan Bus Layanan mengikuti pola pemicu polling berkelanjutan yang dikelola sepenuhnya oleh konektor. Pola ini memiliki pemicu yang terus-menerus memeriksa pesan dalam antrean atau langganan topik. Pemicu sesi mengikuti pola pemicu polling panjang, tetapi konfigurasinya diatur oleh pengaturan Azure Functions bernama clientRetryOptions:tryTimeout. Versi bawaan biasanya memberikan performa, kemampuan, harga, dan sebagainya yang lebih baik. |
Untuk informasi selengkapnya, tinjau dokumentasi berikut: - referensi konektor terkelola Bus Layanan - Bus Layanan operasi konektor bawaan - Konektor bawaan di Azure Logic Apps |
Prasyarat
Akun dan langganan Azure. Jika Anda tidak memiliki langganan Azure, daftar akun Azure gratis.
Namespace layanan dan entitas pesan Azure Service Bus, seperti antrean. Untuk informasi selengkapnya, tinjau dokumentasi berikut ini:
Alur kerja aplikasi logika tempat Anda tersambung ke namespace Bus Layanan dan entitas olahpesan. Untuk memulai alur kerja Anda dengan pemicu Bus Layanan, Anda harus memulai dengan alur kerja kosong. Untuk menggunakan tindakan Bus Layanan dalam alur kerja Anda, mulai alur kerja Anda dengan pemicu apa pun.
Jika sumber daya aplikasi logika Anda menggunakan identitas terkelola untuk mengautentikasi akses ke namespace Bus Layanan dan entitas olahpesan, pastikan Anda telah menetapkan izin peran di tingkat yang sesuai. Misalnya, untuk mengakses antrean, identitas terkelola memerlukan peran yang memiliki izin yang diperlukan untuk antrean tersebut.
Setiap sumber daya aplikasi logika hanya boleh menggunakan satu identitas terkelola, bahkan jika alur kerja aplikasi logika mengakses entitas olahpesan yang berbeda.
Setiap identitas terkelola yang mengakses antrean atau langganan topik harus menggunakan koneksi API Bus Layanan sendiri.
Bus Layanan operasi yang bertukar pesan dengan entitas olahpesan yang berbeda dan memerlukan izin yang berbeda harus menggunakan koneksi API Bus Layanan mereka sendiri.
Untuk informasi selengkapnya tentang identitas terkelola, lihat Mengautentikasi akses ke sumber daya Azure dengan identitas terkelola di Azure Logic Apps.
Secara default, operasi konektor bawaan Bus Layanan tidak memiliki status. Untuk menjalankan operasi ini dalam mode stateful, lihat Mengaktifkan mode stateful untuk konektor bawaan stateless.
Pertimbangan untuk operasi Azure Service Bus
Perulangan tak terbatas
Penting
Berhati-hatilah saat Anda memilih pemicu dan tindakan yang memiliki jenis konektor yang sama dan menggunakannya untuk bekerja dengan entitas yang sama, seperti antrean pesan atau langganan topik. Kombinasi ini dapat membuat loop tak terbatas, yang menghasilkan aplikasi logika yang tidak pernah berakhir.
Batasi sesi tersimpan di cache konektor
Per entitas olahpesan Bus Layanan, seperti langganan atau topik, konektor Bus Layanan dapat menghemat hingga 1.500 sesi unik sekaligus ke cache konektor. Jika jumlah sesi melebihi batas ini, sesi lama akan dihapus dari tembolokan. Untuk informasi selengkapnya, lihat Sesi pesan.
Kirim pesan terkait secara berurutan
Saat Anda perlu mengirim pesan terkait dalam urutan tertentu, Anda dapat membuat alur kerja menggunakan konektor Bus Layanan dan pola konvoi berurutan. Pesan berkorelasi memiliki properti yang menentukan hubungan antara pesan tersebut, seperti ID untuk sesi di Azure Bus Layanan.
Saat membuat alur kerja aplikasi logika Konsumsi, Anda dapat memilih templat Pengiriman berurutan yang berkorelasi menggunakan sesi bus layanan, yang mengimplementasikan pola konvoi berurutan. Untuk informasi selengkapnya, lihat Mengirim pesan terkait secara berurutan.
Dukungan pesan besar
Dukungan pesan besar hanya tersedia untuk alur kerja Standar saat Anda menggunakan operasi konektor bawaan Bus Layanan. Misalnya, Anda dapat menerima dan pesan besar menggunakan pemicu dan tindakan bawaan masing-masing.
Untuk konektor terkelola Bus Layanan, ukuran pesan maksimum dibatasi hingga 1 MB, bahkan ketika Anda menggunakan tingkat premium Bus Layanan namespace.
Meningkatkan batas waktu untuk menerima dan mengirim pesan
Di Alur kerja Standar yang menggunakan operasi bawaan Bus Layanan, Anda dapat meningkatkan batas waktu untuk menerima dan mengirim pesan. Misalnya, untuk meningkatkan batas waktu untuk menerima pesan, ubah pengaturan berikut di ekstensi Azure Functions:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
"version": "[1.*, 2.0.0)"
},
"extensions": {
"serviceBus": {
"batchOptions": {
"operationTimeout": "00:15:00"
}
}
}
}
Untuk meningkatkan batas waktu pengiriman pesan, tambahkan pengaturan aplikasi ServiceProviders.ServiceBus.MessageSenderOperationTimeout.
Bus Layanan pemicu konektor terkelola
Untuk konektor terkelola Bus Layanan, semua pemicu adalah polling panjang. Jenis pemicu ini memproses semua pesan lalu menunggu 30 detik agar lebih banyak pesan muncul dalam antrean atau langganan topik. Jika tidak ada pesan yang muncul dalam 30 detik, proses pemicu akan dilewati. Jika tidak, pemicu akan terus membaca pesan hingga antrean atau langganan topik kosong. Polling pemicu berikutnya didasarkan pada interval pengulangan yang ditentukan dalam properti pemicu.
Beberapa pemicu, seperti pemicu Bila satu atau beberapa pesan tiba dalam antrean (selesai otomatis), dapat menampilkan satu atau beberapa pesan. Saat pemicu ini diaktifkan, pemicu tersebut ditampilkan antara satu dan jumlah pesan yang ditentukan oleh properti Jumlah pesan maksimum pemicu.
Catatan
Pemicu selesai otomatis menyelesaikan pesan secara otomatis, tetapi penyelesaian hanya terjadi pada panggilan berikutnya ke Azure Service Bus. Perilaku ini dapat memengaruhi desain alur kerja Anda. Misalnya, hindari mengubah konkurensi pada pemicu lengkapi otomatis karena perubahan ini dapat mengakibatkan pesan duplikat jika alur kerja Anda memasuki status dibatasi. Mengubah kontrol konkurensi membuat kondisi berikut:
Pemicu yang dibatasi dilewati dengan
WorkflowRunInProgress
kode.Operasi penyelesaian tidak akan berjalan.
Eksekusi pemicu berikutnya terjadi setelah interval polling.
Anda harus menetapkan durasi kunci bus layanan ke nilai yang lebih panjang dari interval polling. Namun, terlepas dari pengaturan ini, pesan mungkin masih belum selesai jika alur kerja Anda tetap dalam status dibatasi pada interval polling berikutnya.
Namun, jika Anda mengaktifkan pengaturan konkurensi pemicu Bus Layanan, nilai default untuk
maximumWaitingRuns
properti adalah 10. Berdasarkan pengaturan durasi kunci entitas Bus Layanan dan durasi eksekusi untuk alur kerja Anda, nilai default ini mungkin terlalu besar dan dapat menyebabkan pengecualian "kunci hilang". Untuk menemukan nilai optimal pada skenario Anda, mulailah pengujian dengan nilai 1 atau 2 untuk propertimaximumWaitingRuns
. Untuk mengubah nilai eksekusi tunggu maksimum, tinjau Mengubah batas eksekusi tunggu.
Bus Layanan pemicu konektor bawaan
Untuk dia Bus Layanan konektor bawaan, pemicu non-sesi mengikuti pola pemicu polling berkelanjutan yang dikelola sepenuhnya oleh konektor. Pola ini memiliki pemicu yang terus-menerus memeriksa pesan dalam antrean atau langganan topik. Pemicu sesi mengikuti pola pemicu polling panjang, dengan konfigurasinya diatur oleh pengaturan Azure Functions bernama clientRetryOptions:tryTimeout. Saat ini, pengaturan konfigurasi untuk pemicu bawaan Bus Layanan dibagikan antara ekstensi host Azure Functions, yang ditentukan dalam file host.json aplikasi logika Anda, dan pengaturan pemicu yang ditentukan dalam alur kerja aplikasi logika Anda, yang dapat Anda siapkan baik melalui perancang atau tampilan kode. Bagian ini mencakup kedua lokasi pengaturan.
Di Alur kerja Standar, beberapa pemicu, seperti pemicu Saat pesan tersedia dalam pemicu antrean , dapat mengembalikan satu atau beberapa pesan. Ketika pemicu ini diaktifkan, mereka kembali antara satu dan jumlah pesan. Untuk jenis pemicu ini dan di mana parameter Jumlah pesan maksimum tidak didukung, Anda masih dapat mengontrol jumlah pesan yang diterima dengan menggunakan properti maxMessageBatchSize dalam file host.json . Untuk menemukan file ini, lihat Mengedit pengaturan host dan aplikasi untuk aplikasi logika Standar.
"extensions": { "serviceBus": { "maxMessageBatchSize": 25 } }
Anda juga dapat mengaktifkan konkurensi pada pemicu Bus Layanan, baik melalui perancang atau dalam kode:
"runtimeConfiguration": { "concurrency": { "runs": 100 } }
Saat Anda menyiapkan konkurensi menggunakan batch, pertahankan jumlah eksekusi bersamaan lebih besar dari ukuran batch keseluruhan. Dengan begitu, pesan baca tidak masuk ke status tunggu dan selalu diambil saat dibaca. Dalam beberapa kasus, pemicu dapat memiliki ukuran batch hingga dua kali lipat.
Jika Anda mengaktifkan konkurensi, batas SplitOn dikurangi menjadi 100 item. Perilaku ini berlaku untuk semua pemicu, bukan hanya pemicu Bus Layanan. Pastikan ukuran batch yang ditentukan kurang dari batas ini pada pemicu apa pun tempat Anda mengaktifkan konkurensi.
Beberapa skenario ada di mana pemicu dapat melebihi pengaturan konkurensi. Daripada gagal menjalankan ini, Azure Logic Apps mengantrekannya dalam status menunggu hingga dapat dimulai. Pengaturan maximumWaitingRuns mengontrol jumlah eksekusi yang diizinkan dalam status tunggu:
"runtimeConfiguration": { "concurrency": { "runs": 100, "maximumWaitingRuns": 50 } }
Dengan pemicu Bus Layanan, pastikan Anda menguji perubahan ini dengan hati-hati sehingga eksekusi tidak menunggu lebih lama dari batas waktu penguncian pesan. Untuk informasi selengkapnya tentang nilai default, lihat Batas konkurensi dan pembatalan batching di sini.
Jika Anda mengaktifkan konkurensi, penundaan 30 detik ada di antara pembacaan batch, secara default. Penundaan ini memperlambat pemicu untuk mencapai tujuan berikut:
Kurangi jumlah panggilan penyimpanan yang dikirim untuk memeriksa jumlah eksekusi untuk menerapkan konkurensi.
Menimpulkan perilaku pemicu konektor terkelola Bus Layanan, yang memiliki polling panjang 30 detik ketika tidak ada pesan yang ditemukan.
Anda dapat mengubah penundaan ini, tetapi pastikan Anda menguji perubahan apa pun dengan hati-hati pada nilai default:
"workflow": { "settings": { "Runtime.ServiceProviders.FunctionTriggers.DynamicListenerEnableDisableInterval": "00:00:30" } }
Langkah 1: Periksa akses ke namespace Bus Layanan
Untuk mengonfirmasi bahwa sumber daya aplikasi logika Anda memiliki izin untuk mengakses namespace Bus Layanan Anda, gunakan langkah-langkah berikut:
Di portal Azure, buka namespace Bus Layanan Anda.
Pada menu namespace, di bawah Pengaturan, pilih Kebijakan akses berbagi. Di bagian Klaim, periksa apakah Anda memiliki izin Kelola untuk namespace layanan tersebut.
Langkah 2: Dapatkan persyaratan autentikasi koneksi
Nantinya, saat Anda menambahkan pemicu atau tindakan Bus Layanan untuk pertama kalinya, Anda akan dimintai informasi koneksi, termasuk jenis autentikasi koneksi. Berdasarkan jenis alur kerja aplikasi logika Anda, versi konektor Bus Layanan, dan jenis autentikasi yang dipilih, Anda memerlukan item berikut:
Autentikasi konektor terkelola (alur kerja Konsumsi dan Standar)
Jenis autentikasi | Informasi yang diperlukan |
---|---|
Kunci Akses | string koneksi untuk namespace Bus Layanan Anda. Untuk informasi selengkapnya, tinjau Dapatkan string koneksi untuk namespace Bus Layanan |
Microsoft Entra terintegrasi | URL titik akhir untuk namespace Bus Layanan Anda. Untuk informasi selengkapnya, tinjau Dapatkan URL titik akhir untuk namespace Bus Layanan. |
Identitas Terkelola Logic Apps | URL titik akhir untuk namespace Bus Layanan Anda. Untuk informasi selengkapnya, tinjau Dapatkan URL titik akhir untuk namespace Bus Layanan. |
Autentikasi konektor bawaan (hanya alur kerja Standar)
Jenis autentikasi | Informasi yang diperlukan |
---|---|
String Koneksi | string koneksi untuk namespace Bus Layanan Anda. Untuk informasi selengkapnya, tinjau Dapatkan string koneksi untuk namespace Bus Layanan |
Active Directory OAuth | - Nama yang sepenuhnya memenuhi syarat untuk namespace Bus Layanan Anda, misalnya, <your-Service-Bus-namespace.servicebus.windows.net.> Untuk informasi selengkapnya, tinjau Dapatkan nama yang sepenuhnya memenuhi syarat untuk namespace Bus Layanan. Untuk nilai properti lainnya, lihat OAuth dengan ID Microsoft Entra. |
Identitas terkelola | Nama yang sepenuhnya memenuhi syarat untuk namespace Bus Layanan Anda, misalnya, <your-Service-Bus-namespace.servicebus.windows.net.> Untuk informasi selengkapnya, tinjau Dapatkan nama yang sepenuhnya memenuhi syarat untuk namespace Bus Layanan. |
Dapatkan string koneksi untuk namespace Bus Layanan
Untuk membuat koneksi saat menambahkan pemicu atau tindakan Bus Layanan, Anda harus memiliki string koneksi untuk namespace Bus Layanan Anda. string koneksi dimulai dengan awalan sb://.
Di portal Azure, buka namespace Bus Layanan Anda.
Pada menu namespace, di bawah Pengaturan, pilih Kebijakan akses berbagi.
Pada panel Kebijakan akses bersama, pilih RootManageSharedAccessKey.
Di samping string koneksi primer atau sekunder, pilih tombol salin.
Catatan
Untuk memeriksa apakah string adalah untuk namespace layanan, bukan entitas olahpesan tertentu, cari string koneksi untuk
EntityPath
parameter . Jika Anda menemukan parameter ini, string koneksi adalah untuk entitas tertentu, dan bukan string yang benar untuk digunakan dengan alur kerja Anda.Simpan string koneksi untuk digunakan nanti.
Mendapatkan URL titik akhir untuk namespace Bus Layanan
Jika Anda menggunakan konektor terkelola Bus Layanan, Anda memerlukan URL titik akhir ini jika Anda memilih jenis autentikasi untuk Microsoft Entra terintegrasi atau Identitas Terkelola Logic Apps. URL titik akhir dimulai dengan awalan sb:// .
Di portal Azure, buka namespace Bus Layanan Anda.
Pada menu namespace, di bawah Pengaturan, pilih Properti.
Di bawah Properti, di samping titik akhir Bus Layanan, salin URL titik akhir, dan simpan untuk digunakan nanti saat Anda harus menyediakan URL titik akhir bus layanan.
Dapatkan nama yang sepenuhnya memenuhi syarat untuk namespace Bus Layanan
Di portal Azure, buka namespace Bus Layanan Anda.
Pada menu namespace, pilih Gambaran Umum.
Pada panel Gambaran Umum, temukan properti Nama host, dan salin nama yang sepenuhnya memenuhi syarat, yang terlihat seperti< your-Service-Bus-namespace.servicebus.windows.net>.
Langkah 3: Opsi 1 - Tambahkan pemicu Bus Layanan
Langkah-langkah berikut menggunakan portal Azure, tetapi dengan ekstensi Azure Logic Apps yang sesuai, Anda juga dapat menggunakan alat berikut untuk membuat alur kerja aplikasi logika:
Alur kerja aplikasi logika konsumsi: Visual Studio atau Visual Studio Code
Alur kerja aplikasi logika standar: Visual Studio Code
Di portal Azure, buka sumber daya aplikasi logika Konsumsi Anda dengan alur kerja kosong di perancang.
Di perancang, ikuti langkah-langkah umum ini untuk menambahkan pemicu Azure Bus Layanan yang Anda inginkan.
Contoh ini berlanjut dengan pemicu bernama Saat pesan diterima dalam antrean (selesai otomatis).
Jika diminta, berikan informasi berikut untuk koneksi Anda. Jika sudah selesai, pilih Buat.
Properti Wajib Deskripsi Nama koneksi Ya Nama untuk koneksi Anda Jenis Autentikasi Ya Jenis autentikasi yang digunakan untuk mengakses namespace Bus Layanan Anda. Untuk informasi selengkapnya, tinjau Autentikasi konektor terkelola. String Koneksi Ya string koneksi yang Anda salin dan simpan sebelumnya. Misalnya, koneksi ini menggunakan autentikasi kunci akses dan menyediakan string koneksi untuk namespace Bus Layanan:
Setelah kotak informasi pemicu muncul, berikan informasi yang diperlukan, misalnya:
Properti Wajib Deskripsi Nama antrean Ya Antrean yang dipilih untuk diakses Jenis antrean No Tipe untuk antrean terpilih Seberapa sering Anda ingin memeriksa item? Ya Interval polling dan frekuensi untuk memeriksa antrean item Untuk menambahkan properti lain yang tersedia ke pemicu, buka daftar Tambahkan parameter baru, dan pilih properti yang Anda inginkan.
Tambahkan tindakan apa pun yang dibutuhkan alur kerja Anda.
Misalnya, Anda dapat menambahkan tindakan yang mengirim email saat pesan baru masuk. Saat pemicu memeriksa antrean Anda dan menemukan pesan baru, alur kerja Anda menjalankan tindakan yang Anda pilih untuk pesan yang ditemukan.
Setelah selesai, simpan alur kerja. Di bar alat perancang, pilih Simpan.
Langkah 3: Opsi 2 - Menambahkan tindakan Bus Layanan
Langkah-langkah berikut menggunakan portal Azure, tetapi dengan ekstensi Azure Logic Apps yang sesuai, Anda juga dapat menggunakan alat berikut untuk membuat alur kerja aplikasi logika:
Alur kerja aplikasi logika konsumsi: Visual Studio atau Visual Studio Code
Alur kerja aplikasi logika standar: Visual Studio Code
Di portal Azure, buka aplikasi logika Konsumsi dan alur kerja Anda di perancang.
Di perancang, ikuti langkah-langkah umum ini untuk menambahkan tindakan Azure Bus Layanan yang Anda inginkan.
Contoh ini berlanjut dengan tindakan Kirim pesan .
Jika diminta, berikan informasi berikut untuk koneksi Anda. Jika sudah selesai, pilih Buat.
Properti Wajib Deskripsi Nama koneksi Ya Nama untuk koneksi Anda Jenis Autentikasi Ya Jenis autentikasi yang digunakan untuk mengakses namespace Bus Layanan Anda. Untuk informasi selengkapnya, tinjau Autentikasi konektor terkelola. String Koneksi Ya string koneksi yang Anda salin dan simpan sebelumnya. Misalnya, koneksi ini menggunakan autentikasi kunci akses dan menyediakan string koneksi untuk namespace Bus Layanan:
Setelah kotak informasi tindakan muncul, berikan informasi yang diperlukan, misalnya:
Properti Wajib Deskripsi Nama Antrean/Topik Ya Antrean atau tujuan topik yang dipilih untuk mengirim pesan Id Sesi No ID sesi jika mengirim pesan ke antrean atau topik yang sadar sesi Properti sistem No - Tidak
- Jalankan Detail: Tambahkan informasi properti metadata tentang eksekusi sebagai properti kustom dalam pesan.Untuk menambahkan properti lain yang tersedia ke tindakan, buka daftar Tambahkan parameter baru, dan pilih properti yang Anda inginkan.
Tambahkan tindakan lain yang dibutuhkan alur kerja Anda.
Misalnya, Anda dapat menambahkan tindakan yang mengirim email untuk mengonfirmasi bahwa pesan Anda telah terkirim.
Setelah selesai, simpan alur kerja. Di bar alat perancang, pilih Simpan.
Bus Layanan pengaturan aplikasi konektor bawaan
Dalam sumber daya aplikasi logika Standar, konektor bawaan Bus Layanan menyertakan pengaturan aplikasi yang mengontrol berbagai ambang batas, seperti batas waktu untuk mengirim pesan dan jumlah pengirim pesan per inti prosesor di kumpulan pesan. Untuk informasi selengkapnya, tinjau Referensi untuk pengaturan aplikasi - local.settings.json.
Membaca pesan dari antrean surat mati dengan pemicu bawaan Bus Layanan
Di Alur kerja Standar, untuk membaca pesan dari antrean surat mati dalam antrean atau langganan topik, ikuti langkah-langkah berikut menggunakan pemicu yang ditentukan:
Dalam alur kerja kosong Anda, berdasarkan skenario Anda, tambahkan pemicu konektor bawaan Bus Layanan bernama Saat pesan tersedia dalam antrean atau Saat pesan tersedia dalam langganan topik (kunci intip).
Dalam pemicu, atur nilai parameter berikut untuk menentukan antrean atau antrean dead-letter default langganan topik Anda, yang dapat Anda akses seperti antrean lainnya:
Saat pesan tersedia dalam pemicu antrean : Atur parameter Nama antrean ke queuename/$deadletterqueue.
Saat pesan tersedia dalam pemicu langganan topik (kunci intip): Atur parameter Nama topik ke topicname/Subscriptions/subscriptionname/$deadletterqueue.
Untuk informasi selengkapnya, lihat gambaran umum antrean surat mati Bus Layanan.
Pemecahan Masalah
Penundaan pembaruan pada alur kerja Anda berlaku
Jika interval polling pemicu Bus Layanan kecil, seperti 10 detik, pembaruan alur kerja Anda mungkin tidak berlaku hingga 10 menit. Untuk mengatasi masalah ini, Anda dapat menonaktifkan sumber daya aplikasi logika, membuat perubahan, lalu mengaktifkan sumber daya aplikasi logika lagi.
Tidak ada sesi yang tersedia atau mungkin dikunci oleh penerima lain
Terkadang, operasi seperti menyelesaikan pesan atau memperbarui sesi menghasilkan kesalahan berikut:
{
"status": 400,
"error": {
"message": "No session available to complete the message with the lock token 'ce440818-f26f-4a04-aca8-555555555555'."
}
}
Terkadang, pemicu berbasis sesi mungkin gagal dengan kesalahan berikut:
{
"status": 400,
"error": {
"message": "Communication with the Service Bus namespace 'xxxx' and 'yyyy' entity failed. The requested session 'zzzz' cannot be accepted. It may be locked by another receiver."
}
}
Konektor Bus Layanan menggunakan cache dalam memori untuk mendukung semua operasi yang terkait dengan sesi. Penerima pesan Bus Layanan di-cache dalam memori instans peran (komputer virtual) yang menerima pesan. Untuk memproses semua permintaan, semua panggilan untuk koneksi dirutekan ke instans peran yang sama ini. Perilaku ini diperlukan karena semua operasi Bus Layanan dalam sesi memerlukan penerima yang sama yang menerima pesan untuk sesi tertentu.
Karena alasan seperti pembaruan infrastruktur, penyebaran konektor, dan sebagainya, kemungkinan ada untuk permintaan agar tidak dirutekan ke instans peran yang sama. Jika peristiwa ini terjadi, permintaan gagal karena salah satu alasan berikut:
Penerima yang melakukan operasi dalam sesi tidak tersedia dalam instans peran yang melayani permintaan.
Instans peran baru mencoba mendapatkan sesi, yang kehabisan waktu dalam instans peran lama atau tidak ditutup.
Selama kesalahan ini hanya terjadi sesekali, kesalahan diharapkan. Ketika kesalahan terjadi, pesan masih dipertahankan di bus layanan. Pemicu atau eksekusi alur kerja berikutnya mencoba memproses pesan lagi.