Mengirim pesan ke topik Pub/Sub
BERLAKU UNTUK: Pengembang | Premi
Kebijakan ini publish-to-dapr
menginstruksikan gateway API Management untuk mengirim pesan ke topik Terbitkan/Berlangganan Dapr. Kebijakan ini menyelesaikannya dengan membuat permintaan HTTP POST ke http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}
, mengganti parameter templat dan menambahkan konten yang ditentukan dalam pernyataan kebijakan.
Kebijakan tersebut mengasumsikan bahwa runtime Dapr berjalan dalam kontainer sidecar di pod yang sama dengan gateway. Runtime Dapr mengimplementasikan semantik Terbitkan/Berlangganan. Pelajari selengkapnya tentang integrasi Dapr dengan API Management.
Catatan
Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.
Pernyataan kebijakan
<publish-to-dapr pubsub-name="pubsub-name" topic="topic-name" ignore-error="false|true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<!-- message content -->
</publish-to-dapr>
Atribut
Atribut | Deskripsi | Wajib diisi | Default |
---|---|---|---|
pubsub-name | Nama komponen PubSub target. Memetakan ke parameter pubsubname di Dapr. Jika tidak ada, topic nilai atribut harus dalam bentuk pubsub-name/topic-name . Ekspresi kebijakan diizinkan. |
No | Tidak |
topik | Nama topik. Memetakan ke parameter topik di Dapr. Ekspresi kebijakan diizinkan. | Ya | T/A |
ignore-error | Jika diatur ke true , menginstruksikan kebijakan untuk tidak memicu bagian "on-error" setelah menerima kesalahan dari runtime Dapr. Ekspresi kebijakan tidak diizinkan. |
No | false |
respons-variabel-nama | Nama entri koleksi Variabel yang akan digunakan untuk menyimpan respons dari runtime Dapr. Ekspresi kebijakan tidak diizinkan. | No | Tidak |
waktu habis | Waktu (dalam detik) untuk menunggu runtime Dapr merespons. Bisa berkisar antara 1 hingga 240 detik. Ekspresi kebijakan diizinkan. | No | 5 |
templat | Mesin pembuat templat yang digunakan untuk mengubah konten pesan. "Liquid" adalah satu-satunya nilai yang didukung. | No | Tidak |
tipekonten | Jenis konten pesan. "application/json" adalah satu-satunya nilai yang didukung. | No | Tidak |
Penggunaan
- Bagian kebijakan: masuk
- Cakupan kebijakan: global, produk, API, operasi
- Gateway: dihost sendiri
Catatan penggunaan
Dukungan Dapr harus diaktifkan di gateway yang dihost sendiri.
Contoh
Contoh berikut menunjukkan pengiriman isi permintaan saat ini ke topik "baru" dari komponen Terbitkan/Berlangganan "pesanan". Respons yang diterima dari runtime Dapr disimpan dalam entri "dapr-response" dari koleksi Variabel dalam objek konteks.
Jika runtime Dapr tidak dapat menemukan topik target, misalnya, dan merespons dengan kesalahan, bagian "on-error" dipicu. Respon yang diterima dari runtime Dapr dikembalikan ke verbatim pemanggil. Jika tidak, respons 200 OK
default dikembalikan.
Bagian "backend" kosong dan permintaan tidak diteruskan ke backend.
<policies>
<inbound>
<base />
<publish-to-dapr
pubsub-name="orders"
topic="new"
response-variable-name="dapr-response">
@(context.Request.Body.As<string>())
</publish-to-dapr>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="pubsub-response" />
</on-error>
</policies>
Kebijakan terkait
Konten terkait
Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat:
- Tutorial: Mengubah dan melindungi API Anda
- Referensi Kebijakan untuk daftar lengkap pernyataan kebijakan dan pengaturannya
- Ekspresi kebijakan
- Mengatur atau mengedit kebijakan
- Menggunakan kembali konfigurasi kebijakan
- Repositori cuplikan kebijakan
- Kebijakan penulis menggunakan Microsoft Copilot di Azure