Dodaj zasady dotyczące Spike Arrest do interfejsu API

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Czego się nauczysz

Z tego samouczka dowiesz się, jak:

  • Dodaj zasadę, która wpłynie na żądanie i odpowiedź.
  • Zobacz efekty zasad.

Czego potrzebujesz

  • Co najmniej 1 zasada na serwerze proxy (jest też objęta samouczkiem dla początkujących).
  • Zainstalowany na komputerze pakiet curl umożliwia wykonywanie wywołań interfejsu API z poziomu wiersza poleceń.

Dodaj zasadę dotyczącą Spike Arrest

W tym samouczku dodasz i skonfigurujesz zasadę SpikeArrest, aby chronić usługę docelową przed nagłymi wzrostami ruchu, które mogą być spowodowane wzrostem wykorzystania, nieprawidłowymi klientami lub złośliwymi atakami. Gdy liczba żądań przekracza limit liczby żądań, interfejs API zwraca dla żądania błąd HTTP 500.

Dodaj zasadę Spike Arrest do serwera proxy interfejsu API:

  1. Zaloguj się na stronie apigee.com/edge.
  2. Na pasku nawigacyjnym po lewej stronie wybierz Programowanie > Proxies API.
  3. Wybierz serwer proxy interfejsu API, do którego chcesz dodać zasadę dotyczącą Spike Arrest.

    Po wykonaniu instrukcji z samouczka dla początkujących możesz dodać go do serwera proxy „getstarted” utworzonego w artykule Tworzenie serwera proxy interfejsu API.

  4. W edytorze nowego serwera proxy interfejsu API kliknij kartę Develop (Programowanie):

    W edytorze proxy interfejsu API możesz zobaczyć strukturę serwera proxy interfejsu API i skonfigurować jego przepływ. Edytor wyświetla wizualną reprezentację procesu żądań i odpowiedzi serwera proxy, a także edytowalny widok bazowego kodu XML, który określa serwer proxy.

  5. W panelu nawigacji po lewej stronie kliknij PreFlow w sekcji Proxy Endpoints > default (Punkty końcowe serwera proxy > domyślne). (Inne samouczki omawiają pojęcia procesów).
  6. Kliknij górny przycisk +Step odpowiadający wstępnemu przepływowi żądania. Spowoduje to wyświetlenie listy wszystkich zasad, które możesz utworzyć, podzielone na kategorie.

    Kliknij krok w procesie wstępnego żądania

  7. W kategorii Zarządzanie ruchem wybierz Zatrzymanie naładowania. Pojawi się okno Nowa zasada:

    Utwórz zasadę tymczasowego przechowywania danych

  8. Pozostaw domyślne nazwy i kliknij Dodaj. Nowa zasada jest dołączona do procesu wstępnego przepływu żądania.
  9. W Nawigatorze upewnij się, że opcja PreFlow w sekcji Proxy Endpoints > default jest nadal zaznaczona, i zanotuj te informacje w edytorze serwera proxy interfejsu API:
    • Nowa zasada Arrest-1 została dodana w sekcji Zasady w Nawigatorze po lewej stronie edytora proxy interfejsu API.
    • Ikona Spike Arrest-1 została dodana do widoku projektanta w górnej części Edytora proxy interfejsu API, który przedstawia przepływ wiadomości przez serwer proxy.
    • Kod XML zasady jest wyświetlany w widoku kodu na dole pośrodku edytora serwera proxy interfejsu API.

    Wyświetl zasady PreFlow z intensywnym zatrzymywaniem akcji

  10. W Nawigatorze w sekcji Zasady wybierz Spike Arrest-1 i zwróć uwagę na te kwestie w edytorze serwera proxy interfejsu API:
    • Szczegóły zasady są wyświetlane w Widoku projektanta u góry pośrodku edytora proxy interfejsu API.
    • Kod XML zasady jest wyświetlany w widoku kodu na dole pośrodku edytora serwera proxy interfejsu API.
    • Element XML i wartości atrybutów zasady są wyświetlane w Inspektorze właściwości po prawej stronie edytora proxy interfejsu API.

  11. W pliku XML zasady zmień wartość elementu <Rate> na 1pm (co oznacza mniej więcej 2 żądania w chmurze co 60 sekund).

    Częstotliwość możesz określić jako liczbę całkowitą na minutę (pm) lub na sekundę (ps). Jest to bardzo niski limit, który jest używany tylko w tym samouczku, aby zademonstrować tę zasadę. Zazwyczaj jest to dużo wyższy limit.

    Zwróć uwagę, że wartość Rate w inspektorze właściwości również zmieni się na „1pm”. Możesz też zmienić wartość Price w Inspektorze właściwości – zostanie ona odzwierciedlona w widoku XML.

  12. Kliknij Zapisz, aby zapisać bieżącą wersję ze zmianami.
  13. Wywołaj interfejs API za pomocą curl, zastępując nazwę organizacji Apigee wartością org_name:

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

    Na przykład:

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

    Upewnij się, że żądanie zostało zrealizowane i otrzymasz tę samą odpowiedź XML co wcześniej. (Możesz też wpisać sam adres URL w przeglądarce).

  14. Wykonaj polecenie curl (lub odśwież okno przeglądarki) jeszcze 2 lub 3 razy w ciągu 1 minuty i zwróć uwagę na ten komunikat z powodu przekroczenia limitu częstotliwości żądań zasady:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    Jeśli w ciągu minuty spróbujesz wykonać więcej połączeń, komunikat o błędzie powinien nadal się pojawiać.

  15. Zmień zasadę tak, aby ustawić <limit Rate> na 15:00 (co oznacza mniej więcej 2 wywołania w chmurze co 4 sekundy), a potem zapisz serwer proxy interfejsu API.
  16. Wykonaj polecenie curl lub wielokrotnie odświeżaj przeglądarkę (szybciej jest curl). Pamiętaj, że jeśli wykonasz jedno lub dwa wywołania w odstępach 4-sekundowych, będą one uznawane za prawidłowe. Jeśli nawiązujesz szybkie połączenia, czyli więcej niż 2 w ciągu 4 sekund, to błąd powinien występować. Po każdym 4-sekundowym interwale możesz kontynuować nawiązywanie połączeń – nie trzeba ich blokować na całą minutę (przy ustawieniu 13:00).