Menambahkan kebijakan Spike Arrest ke API

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Yang akan Anda pelajari

Melalui tutorial ini, Anda akan mempelajari cara:

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

Yang akan Anda butuhkan

  • Minimal satu kebijakan di proxy Anda (juga bagian dari tutorial Memulai).
  • curl yang diinstal di komputer Anda untuk melakukan panggilan API dari command line.

Menambahkan kebijakan Spike Arrest

Dalam tutorial ini, Anda akan menambahkan dan mengonfigurasi kebijakanSpikeArrest 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 500 untuk permintaan.

Tambahkan kebijakan Spike Arrest ke proxy API:

  1. Login ke apigee.com/edge.
  2. Pilih Develop > API Proxies di menu navigasi sebelah kiri.
  3. Pilih proxy API tempat Anda ingin menambahkan kebijakan Spike Arrest.

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

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

    Editor Proxy API 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 menentukan proxy yang dapat diedit.

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

    Klik Langkah dalam PraFlow Permintaan

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

    Buat kebijakan Penangkapan Spike

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

    Lihat kebijakan PraFlow dengan Penahanan Lonjakan

  10. Di Navigator, pilih Spike Arrest-1 di bagian Kebijakan dan perhatikan hal-hal berikut di API Proxy Editor:
    • Detail kebijakan ditampilkan dalam Designer view di bagian tengah atas Proxy Editor API.
    • 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.

  11. Dalam XML untuk kebijakan tersebut, ubah nilai elemen <Rate> menjadi 13.00 (yang berarti sekitar 2 permintaan diizinkan setiap 60 detik di cloud).

    Anda dapat menentukan kecepatan sebagai nilai bilangan bulat per menit (pm) atau per detik (ps). Ini adalah batas yang sangat rendah dan hanya digunakan untuk tutorial ini guna 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 Simpan untuk menyimpan revisi saat ini dengan perubahan Anda.
  13. Panggil API menggunakan curl, dengan mengganti nama organisasi Apigee Anda dengan org_name:

    curl "http://org_name-test.apigee.net/getstarted"

    Contoh:

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

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

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

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

  15. Edit kebijakan Anda untuk menetapkan batas <Rate> ke 15.00 (yang berarti sekitar 2 panggilan yang diizinkan setiap 4 detik di cloud), lalu simpan proxy API.
  16. Jalankan perintah curl atau muat ulang browser berulang kali (curl lebih cepat). Perhatikan, jika Anda melakukan satu atau dua panggilan dalam interval 4 detik, panggilan Anda berhasil. Jika Anda melakukan panggilan dengan cepat, lebih dari dua kali dalam waktu 4 detik, Anda akan mendapatkan kesalahan. Namun, setelah setiap interval 4 detik, Anda dapat terus melakukan panggilan, sehingga tidak harus diblokir selama satu menit penuh (dengan setelan pukul 13.00).