Memicu pengikatan output

BERLAKU UNTUK: Pengembang | Premium

Kebijakan ini invoke-dapr-binding menginstruksikan gateway API Management untuk memicu pengikatan Dapr keluar. Kebijakan ini menyelesaikannya dengan membuat permintaan HTTP POST untuk http://localhost:3500/v1.0/bindings/{{bind-name}}, 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 bertanggung jawab untuk memanggil sumber daya eksternal yang disajikan oleh pengikatan. 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

<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
    <metadata>
        <item key="item-name"><!-- item-value --></item>
    </metadata>
    <data>
        <!-- message content -->
    </data>
</invoke-dapr-binding>

Atribut

Atribut Deskripsi Wajib diisi Default
nama Nama pengikatan target. Harus sesuai dengan nama pengikatan yang ditentukan dalam Dapr. Ekspresi kebijakan diizinkan. Ya T/A
operasi Nama operasi target (spesifik pengikatan). Memetakan ke properti operasi di Dapr. Ekspresi kebijakan tidak diizinkan. No Tidak
ignore-error Jika diatur untuk true menginstruksikan kebijakan untuk tidak memicu bagian "on-error" saat 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

Elemen

Elemen Deskripsi Wajib diisi
metadata Mengikat metadata tertentu dalam bentuk pasangan kunci/nilai. Memetakan ke properti metadata di Dapr. No
data Konten pesan. Memetakan ke properti data di Dapr. Ekspresi kebijakan diizinkan. No

Penggunaan

Catatan penggunaan

Dukungan Dapr harus diaktifkan di gateway yang dihost sendiri.

Contoh

Contoh berikut menunjukkan pemicu pengikatan keluar bernama "external-systems" dengan operasi bernama "create", metadata yang terdiri dari dua item kunci/nilai bernama "source" dan "client-ip", dan isi yang berasal dari permintaan asli. Respons yang diterima dari runtime Dapr ditangkap dalam entri "bind-response" dari koleksi Variabel dalam objek konteks.

Jika runtime Dapr gagal karena beberapa alasan dan merespons dengan kesalahan, bagian "on-error" dipicu dan respons 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 />
        <invoke-dapr-binding
                      name="external-system"
                      operation="create"
                      response-variable-name="bind-response">
            <metadata>
                <item key="source">api-management</item>
                <item key="client-ip">@(context.Request.IpAddress )</item>
            </metadata>
            <data>
                @(context.Request.Body.As<string>() )
            </data>
        </invoke-dapr-binding>
    </inbound>
    <backend>
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
        <return-response response-variable-name="bind-response" />
    </on-error>
</policies>

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: