Menambahkan kebijakan SpikeArrest ke API

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Yang akan Anda pelajari

Melalui tutorial ini, Anda akan mempelajari cara:

  • Menambahkan kebijakan yang memengaruhi permintaan dan respons.
  • Lihat dampak kebijakan tersebut.

Yang Anda butuhkan

Menambahkan kebijakan SpikeArrest

Dalam tutorial ini, Anda akan menambahkan dan mengonfigurasi kebijakan SpikeArrest untuk melindungi layanan target dari lonjakan traffic tiba-tiba yang dapat disebabkan oleh peningkatan penggunaan, klien yang memiliki bug, atau serangan berbahaya. Jika jumlah permintaan melebihi batas kapasitas, API akan menampilkan error HTTP 429.

Editor Proxy Baru

Untuk menambahkan kebijakan SpikeArrest ke proxy API:

  1. Jika Anda menggunakan APIgee UI in Cloud Console: Pilih Pengembangan proxy > Proxy API.

    Jika Anda menggunakan Apigee UI klasik: Pilih Develop > API Proxies dan di panel Proxies, pilih lingkungan untuk proxy.

    Jika telah mengikuti tutorial Memulai, Anda dapat menambahkannya ke proxy API yang Anda buat pada Membuat proxy API.

  2. Klik tab Mengembangkan.
  3. Di panel kiri, klik tombol + di baris Policies.
  4. Pada dialog Create policy, klik kolom Select policy type, lalu scroll ke bawah ke Traffic Management, lalu pilih SpikeArrest.

  5. Jika ingin, Anda dapat mengubah Nama dan Nama tampilan kebijakan. Secara default, Apigee menyediakan awalan pendek untuk nama kebijakan, dalam hal ini, SA-. Anda dapat menambahkan urutan kata deskriptif, yang dipisahkan dengan tanda hubung, setelah awalan. Lihat Konvensi penamaan.

    Dialog "Create policy".

    Setelah selesai, klik Buat untuk membuat kebijakan.

Setelah membuat kebijakan Penangkapan Spike, Anda dapat menambahkannya ke langkah di PreFlow.

  1. Pilih Proxy Endpoints > default > PreFlow di panel sebelah kiri:

    Endpoint target untuk pemilihan PreFlow di Proxy Explorer.

    Catatan: Anda mungkin perlu meluaskan editor visual di panel sebelah kanan untuk melihat semua elemen. Untuk melakukannya, klik dan tarik pemisah antara editor visual dan editor teks sedikit ke bawah.

  2. Klik tombol + di samping PreFlow di panel Response di kanan bawah editor visual:

    Klik tombol + di samping PreFlow di panel Response.

  3. Pada dialog Add policy step, pilih kebijakan Spike Arrest.
  4. Klik Add untuk melampirkan kebijakan.

    Kebijakan Spike Arrest kini ditampilkan di panel Response:

    Kebijakan Penangkapan Lonjakan ditampilkan di panel Respons.

Setelah melampirkan kebijakan Penangkapan Spike ke PreFlow, Anda dapat mencoba mengubah kode kebijakan tersebut:

  1. Di panel Response, pilih SA-.

    Kebijakan Penangkapan Lonjakan ditampilkan di tab Kebijakan.

  2. Editor teks menampilkan kode XML untuk proxy, termasuk langkah kebijakan Spike Arrest dalam elemen Response dari PreFlow.
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SpikeArrest continueOnError="false" enabled="true" name="SA-">
        <DisplayName>SA-</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
  3. Dalam XML untuk kebijakan tersebut, ubah nilai elemen <Rate> menjadi 1pm (yang akan diterjemahkan menjadi sekitar dua permintaan yang diizinkan setiap 60 detik di cloud).

    Anda dapat menentukan laju sebagai nilai bilangan bulat per menit (pm) atau per detik (ps). Ini adalah batas yang sangat rendah dan hanya digunakan untuk tutorial ini untuk mendemonstrasikan kebijakan. Biasanya, Anda menetapkannya ke batas yang jauh lebih tinggi.

    Perhatikan bahwa nilai Rate di Property Inspector juga berubah menjadi 1pm. Atau, Anda dapat mengubah nilai Rate di Property Inspector dan nilai tersebut akan tercermin dalam tampilan XML.

  4. Klik Save untuk menyimpan revisi saat ini dengan perubahan Anda.

Editor Proxy Klasik

Untuk menambahkan kebijakan SpikeArrest ke proxy API:

  1. Login ke UI Apigee.
  2. Pilih Develop > API Proxies di menu navigasi sebelah kiri.
  3. Pilih proxy API yang ingin Anda tambahi kebijakan SpikeArrest.

    Jika telah mengikuti tutorial Memulai, Anda dapat menambahkannya ke proxy API yang Anda buat pada Membuat proxy API.

  4. Di editor untuk proxy API baru, klik tab Develop:

    Tab Develop berada di antara tab Overview dan Trace.

    API Proxy Editor memungkinkan Anda melihat struktur proxy API dan mengonfigurasi alurnya. Editor menyajikan representasi visual dari alur pesan respons dan permintaan proxy Anda serta tampilan XML dasar yang dapat diedit dan menentukan proxy.

  5. Di panel Navigator sebelah kiri, klik PreFlow di bagian Proxy Endpoints > default. (Tutorial lainnya akan membahas konsep flow.)
  6. Klik tombol +Step atas, yang sesuai dengan Request PreFlow. Tindakan ini akan menampilkan daftar semua kebijakan yang dapat Anda buat.

    Klik Langkah dalam Request PreFlow.

  7. Pilih SpikeArrest di kategori Pengelolaan Traffic. Dialog New Policy akan muncul:

    Membuat kebijakan SpikeArrest.

  8. Biarkan nama default tersebut, lalu klik Add. Kebijakan baru ini dilampirkan pada alur PreFlow permintaan.
  9. Di Navigator, pastikan PreFlow pada Proxy Endpoints > default masih dipilih dan perhatikan hal berikut di API Proxy Editor:
    • Kebijakan SpikeArrest-1 baru ditambahkan di bagian Kebijakan pada Navigator di sisi kiri API Proxy Editor.
    • Ikon SpikeArrest-1 ditambahkan ke Designer view di bagian tengah atas API Proxy Editor, yang merupakan representasi visual dari alur pesan proxy Anda.
    • XML untuk kebijakan tersebut ditampilkan di Code view di bagian tengah bawah API Proxy Editor.

    Lihat PreFlow dengan kebijakan SpikeArrest.

  10. Di Navigator, pilih SpikeArrest-1 di bagian Kebijakan dan perhatikan hal berikut di Editor Proxy API:
    • Detail kebijakan ditampilkan dalam Designer view di bagian tengah atas API Proxy Editor.
    • XML untuk kebijakan tersebut ditampilkan di Code view di bagian tengah bawah API Proxy Editor.
    • Elemen XML dan nilai atribut untuk kebijakan ditampilkan di Property Inspector di sisi kanan API Proxy Editor.

    Panel Property Inspector menampilkan nilai untuk kebijakan SpikeArrest-1.

  11. Dalam XML untuk kebijakan tersebut, ubah nilai elemen <Rate> menjadi 1pm (yang akan diterjemahkan menjadi sekitar dua permintaan yang diizinkan setiap 60 detik di cloud).

    Anda dapat menentukan laju sebagai nilai bilangan bulat per menit (pm) atau per detik (ps). Ini adalah batas yang sangat rendah dan hanya digunakan untuk tutorial ini untuk mendemonstrasikan kebijakan. Biasanya, Anda menetapkannya ke batas yang jauh lebih tinggi.

    Perhatikan bahwa nilai Rate di Property Inspector juga berubah menjadi 1pm. Atau, Anda dapat mengubah nilai Rate di Property Inspector dan nilai tersebut akan tercermin dalam tampilan XML.

  12. Klik Save untuk menyimpan revisi saat ini dengan perubahan Anda.
  13. Deploy perubahan Anda menggunakan tombol Deploy to:.
  14. Panggil API menggunakan curl, dengan URL untuk domain Anda:

    curl "http://YOUR_DOMAIN/myproxy"

    dengan:

    • ENV_GROUP_HOSTNAME adalah nama host grup lingkungan yang Anda tetapkan selama penyediaan.
    • DOMAIN_HOSTNAME adalah nama host domain Anda.

    Lihat Menguji proxy API untuk informasi selengkapnya.

    Pastikan permintaan berhasil dan Anda melihat respons XML yang sama seperti sebelumnya. (Anda juga dapat memasukkan URL saja di browser web.)

    Selanjutnya, coba uji setelan Rate dengan cara yang berbeda:

    • Jalankan perintah curl (atau muat ulang jendela browser) dua atau tiga kali lagi dalam satu menit, dan perhatikan bahwa Anda mendapatkan pesan berikut karena melampaui batas kapasitas kebijakan:
      {
      "fault": {
        "faultstring":"Spike arrest violation. Allowed rate : 1pm",
        "detail": {
          "errorcode":"policies.ratelimit.SpikeArrestViolation"}
        }
      }

      Jika Anda mencoba melakukan lebih banyak panggilan dalam satu menit, Anda akan terus mendapatkan pesan kesalahan.

    • Edit kebijakan Anda untuk menetapkan batas <Rate> ke 15pm (yang berarti sekitar dua panggilan yang diizinkan setiap empat detik di cloud), lalu simpan dan deploy proxy API.
    • Jalankan perintah curl atau muat ulang browser berulang kali (curl lebih cepat). Perhatikan, jika Anda melakukan satu atau dua panggilan dalam interval empat detik, panggilan Anda akan berhasil. Jika melakukan panggilan dengan cepat, lebih dari dua kali dalam empat detik, Anda akan mengalami error kesalahan. Namun, setelah setiap interval 4 detik, Anda dapat terus melakukan panggilan, tanpa harus diblokir selama satu menit penuh (dengan setelan 1pm).