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 belajar:

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

Yang Anda butuhkan

Menambahkan kebijakan SpikeArrest

Dalam tutorial ini, Anda akan menambahkan dan mengonfigurasi kebijakan SpikeArrest untuk menjaga target terhadap lonjakan lalu lintas tiba-tiba yang dapat disebabkan oleh peningkatan penggunaan, klien yang atau serangan berbahaya. Saat 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 Pengembangan proxy > Proxy API.

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

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

  2. Klik tab Mengembangkan.
  3. Di panel sebelah 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 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 kebijakan.

    Setelah selesai, klik Buat untuk membuat kebijakan.

Sekarang setelah Anda membuat kebijakan Penangkapan Lonjakan, Anda dapat menambahkannya ke langkah di PreFlow.

  1. Pilih Proxy Endpoints > default > PreFlow di 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 yang kurang penting. Untuk melakukannya, klik dan seret {i>divider<i} antara editor visual dan editor teks turun sedikit.

  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 Tambahkan langkah kebijakan, pilih kebijakan Spike Arrest.
  4. Klik Add untuk melampirkan kebijakan.

    Kebijakan Spike Arrest kini ditampilkan di panel Response:

    Kebijakan Pangkalan Lonjakan 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 Penangkapan Lonjakan ditampilkan di tab Kebijakan.

  2. Editor teks menampilkan kode XML untuk proxy, termasuk Langkah kebijakan Penanganan Lonjakan di elemen Response 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 parameter <Rate> ke 1pm (yang menjadi sekitar dua permintaan yang diizinkan setiap 60 detik di cloud).

    Anda dapat menentukan tarif sebagai nilai bilangan bulat per menit (pm) atau per detik (ps). Ini adalah batas yang sangat rendah dan hanya digunakan untuk tutorial ini menunjukkan kebijakan tersebut. Biasanya, Anda menetapkan 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 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 > Proxy API di menu navigasi sebelah kiri.
  3. Pilih proxy API tempat Anda ingin menambahkan kebijakan SpikeArrest.

    Jika telah 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 Trace.

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

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

    Klik Step in Request PreFlow.

  7. Pilih SpikeArrest dalam kategori Traffic Management. New Dialog kebijakan akan muncul:

    Buat kebijakan SpikeArrest.

  8. Jangan ubah nama default, lalu klik Add. Kebijakan baru dilampirkan pada aliran PreFlow permintaan.
  9. Di Navigator, pastikan PreFlow di bagian Endpoint Proxy &gt; default masih dipilih dan perhatikan hal-hal berikut di Editor Proxy API:
    • Kebijakan SpikeArrest-1 yang baru ditambahkan di bagian Kebijakan di Navigator di sisi kiri Editor Proxy API.
    • Ikon SpikeArrest-1 ditambahkan ke Tampilan desainer di bagian tengah atas Editor Proxy API, yang merupakan representasi visual dari alur pesan {i>proxy<i}.
    • XML untuk kebijakan tersebut ditampilkan dalam Tampilan kode di bagian tengah bawah API Proxy Editor.

    Lihat kebijakan PreFlow dengan SpikeArrest.

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

    Panel Property Inspector menampilkan nilai untuk kebijakan SpikeArrest-1.

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

    Anda dapat menentukan tarif sebagai nilai bilangan bulat per menit (pm) atau per detik (ps). Ini adalah batas yang sangat rendah dan hanya digunakan untuk tutorial ini untuk menunjukkan kebijakan tersebut. Biasanya, Anda menetapkan 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 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 ini 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 Uji proxy API untuk mengetahui informasi selengkapnya.

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

    Selanjutnya, coba uji setelan Rate dengan berbagai cara:

    • Jalankan perintah curl (atau muat ulang jendela browser) dua atau tiga kali kali 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 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 dalam cloud), lalu menyimpan dan men-deploy proxy API.
    • Jalankan perintah curl atau muat ulang browser berulang kali (curl lebih cepat). Ingat, 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 waktu empat detik, Anda akan mendapatkan pesan {i>error<i}. Tapi setelah Anda tetap dapat melakukan panggilan setiap interval 4 detik, bukan diblokir selama seluruh menit (dengan setelan 1pm).