Menambahkan kebijakan SpikeArrest ke API

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat dokumentasi Apigee Edge.

Yang akan Anda pelajari

Melalui tutorial ini, Anda akan mempelajari cara:

  • Tambahkan kebijakan yang memengaruhi permintaan dan respons.
  • Lihat pengaruh kebijakan.

Yang Anda butuhkan

Menambahkan kebijakan SpikeArrest

Dalam tutorial ini, Anda akan menambahkan dan mengonfigurasi kebijakan SpikeArrest untuk melindungi layanan target dari lonjakan traffic mendadak yang dapat disebabkan oleh peningkatan penggunaan, klien yang bermasalah, 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 UI Apigee di konsol Cloud: Pilih Proxy development > API Proxies.

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

    Jika mengikuti tutorial Memulai, Anda dapat menambahkannya ke proxy API yang Anda buat di 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 dan pilih SpikeArrest.

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

    Buat dialog kebijakan.

    Setelah selesai, klik Buat untuk membuat kebijakan.

Setelah membuat kebijakan Spike Arrest, Anda dapat menambahkannya ke langkah dalam PreFlow.

  1. Pilih Endpoint Proxy > default > PreFlow di panel kiri:

    Endpoint target untuk PreFlow pilih di Proxy Explorer.

    Catatan: Anda mungkin perlu meluaskan editor visual di panel 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 Respons.

  3. Di dialog Langkah menambahkan kebijakan, pilih kebijakan Spike Arrest.
  4. Klik Tambahkan untuk melampirkan kebijakan.

    Kebijakan Spike Arrest kini ditampilkan di panel Response:

    Kebijakan Spike Arrest ditampilkan di panel Respons.

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

  1. Di panel Response, pilih SA-.

    Kebijakan Spike Arrest ditampilkan di tab Kebijakan.

  2. Editor teks menampilkan kode XML untuk proxy, termasuk langkah kebijakan Spike Arrest di 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, ubah nilai elemen <Rate> menjadi 1pm (yang berarti sekitar dua 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 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 ditampilkan di tampilan XML.

  4. Klik Simpan 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 tambahkan kebijakan SpikeArrest.

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

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

    Tab Develop berada di antara tab Ringkasan dan Rekaman Aktivitas.

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

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

    Klik Langkah dalam Pra-Alur Permintaan.

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

    Buat kebijakan SpikeArrest.

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

    Melihat PreFlow dengan kebijakan SpikeArrest.

  10. Di Navigator, pilih SpikeArrest-1 di bagian Kebijakan dan catat hal berikut di Editor Proxy API:
    • Detail kebijakan ditampilkan di Tampilan desainer di bagian tengah atas Editor Proxy API.
    • XML untuk kebijakan ditampilkan di Tampilan kode di bagian tengah bawah Editor Proxy API.
    • 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, ubah nilai elemen <Rate> menjadi 1pm (yang berarti sekitar dua 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 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 ditampilkan di tampilan XML.

  12. Klik Simpan untuk menyimpan revisi saat ini dengan perubahan Anda.
  13. Deploy perubahan menggunakan tombol Deploy to:.
  14. Panggil API menggunakan curl, menggunakan 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 mengetahui 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 error.

    • Edit kebijakan Anda untuk menetapkan batas <Rate> ke 15pm (yang berarti sekitar dua panggilan 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 bahwa jika Anda melakukan satu atau dua panggilan dalam interval empat detik, panggilan Anda akan berhasil. Jika Anda melakukan panggilan dengan cepat, lebih dari dua dalam empat detik, Anda akan mendapatkan error error. Namun, setelah setiap interval 4 detik, Anda dapat terus melakukan panggilan, bukan diblokir selama satu menit (dengan setelan 1pm).