Membuat kebijakan tingkat lanjut

Selesai

Unit ini memberikan referensi untuk kebijakan API Management berikut:

  • Alur kontrol - Menerapkan pernyataan kebijakan secara bersyarat berdasarkan hasil evaluasi ekspresi Boolean.
  • Teruskan permintaan - Meneruskan permintaan ke layanan backend.
  • Batasi konkurensi - Mencegah kebijakan yang terlampir dijalankan oleh lebih dari jumlah permintaan yang ditentukan pada satu waktu.
  • Masuk ke Hub Kejadian - Mengirim pesan dalam format yang ditentukan ke Hub Kejadian yang ditentukan oleh entitas Pencatat.
  • Respons mock - Membatalkan eksekusi alur dan mengembalikan respons mock langsung ke pemanggil.
  • Coba lagi - Mencoba kembali eksekusi pernyataan kebijakan yang terlampir, jika dan hingga kondisi terpenuhi. Eksekusi berulang pada interval waktu yang ditentukan dan hingga jumlah coba lagi yang ditentukan.

Alur kontrol

Kebijakan ini choose menerapkan pernyataan kebijakan tertutup berdasarkan hasil evaluasi ekspresi boolean, mirip dengan if-then-else atau switch construct dalam bahasa pemrograman.

<choose>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <otherwise>
        <!— one or more policy statements to be applied if none of the above conditions are true  -->
</otherwise>
</choose>

Kebijakan alur kontrol harus mengandung setidaknya satu elemen <when/>. Elemen <otherwise/> adalah opsional. Ketentuan di elemen <when/> dievaluasi dalam urutan kemunculannya dalam kebijakan. Pernyataan kebijakan yang diapit dalam elemen pertama <when/> diterapkan saat atribut kondisi benar. Kebijakan yang diapit dalam <otherwise/> elemen, jika ada, diterapkan jika semua <when/> atribut kondisi elemen salah.

Meneruskan permintaan

forward-requestKebijakan akan meneruskan permintaan masuk ke layanan backend yang ditentukan dalam konteks permintaan. URL layanan backend ditentukan dalam pengaturan API dan dapat diubah menggunakan kebijakan setel layanan backend.

Penghapusan kebijakan ini akan mengakibatkan permintaan yang tidak diteruskan ke layanan backend. Kebijakan di bagian keluar dievaluasi segera setelah keberhasilan penyelesaian kebijakan di bagian masuk.

<forward-request timeout="time in seconds" follow-redirects="true | false"/>

Membatasi konkurensi

Kebijakan limit-concurrency mencegah kebijakan yang terlampir dijalankan oleh lebih dari jumlah permintaan yang ditentukan kapan saja. Ketika permintaan melebihi angka tersebut, permintaan baru segera gagal dengan kode status Permintaan Terlalu Banyak 429.

<limit-concurrency key="expression" max-count="number">
        <!— nested policy statements -->
</limit-concurrency>

Log ke Pusat Aktivitas

Kebijakan log-to-eventhub mengirimkan pesan dalam format yang ditentukan ke Hub Kejadian yang ditentukan oleh entitas Pencatat. Sesuai dengan namanya, kebijakan digunakan untuk menyimpan informasi konteks permintaan atau respons yang dipilih untuk analisis online atau offline.

<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
  Expression returning a string to be logged
</log-to-eventhub>

Respons mock

mock-response, seperti namanya, digunakan untuk meniru API dan pengoperasian. Ini membatalkan eksekusi alur normal dan mengembalikan respons mock ke pemanggil. Kebijakan tersebut selalu berusaha mengembalikan respons dengan ketelitian tertinggi. Ini lebih dipilih contoh konten respons, jika tersedia. Ini menghasilkan respons sampel dari skema, ketika skema disediakan dan contohnya tidak. Jika contoh atau skema tidak ditemukan, respons tanpa konten dikembalikan.

<mock-response status-code="code" content-type="media type"/>

Coba lagi

Kebijakan retry menjalankan kebijakan turunannya satu kali dan kemudian mencoba kembali eksekusinya hingga percobaan ulang condition menjadi false atau coba lagi count habis.

<retry
    condition="boolean expression or literal"
    count="number of retry attempts"
    interval="retry interval in seconds"
    max-interval="maximum retry interval in seconds"
    delta="retry interval delta in seconds"
    first-fast-retry="boolean expression or literal">
        <!-- One or more child policies. No restrictions -->
</retry>

Mengembalikan respons

Kebijakan return-response membatalkan eksekusi alur dan mengembalikan respons default atau kustom ke pemanggil. Respons default adalah 200 OK tanpa isi. Respons khusus dapat ditentukan melalui variabel konteks atau pernyataan kebijakan. Ketika keduanya disediakan, pernyataan kebijakan memodifikasi variabel konteks sebelum dikembalikan ke pemanggil.

<return-response response-variable-name="existing context variable">
  <set-header/>
  <set-body/>
  <set-status/>
</return-response>

Sumber daya lainnya