Mengirim pesan ke topik Pub/Sub

BERLAKU UNTUK: Pengembang | Premium

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

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>

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: