Thêm chính sách Spike Arrest vào API của bạn

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Kiến thức bạn sẽ học được

Thông qua hướng dẫn này, bạn sẽ tìm hiểu cách:

  • Thêm một chính sách ảnh hưởng đến yêu cầu và phản hồi.
  • Xem hiệu lực của chính sách.

Bạn cần có

  • Ít nhất một chính sách trong proxy của bạn (cũng là một phần của hướng dẫn Bắt đầu).
  • curl được cài đặt trên máy của bạn để thực hiện các lệnh gọi API từ dòng lệnh.

Thêm chính sách Spike Arrest

Trong hướng dẫn này, bạn sẽ thêm và định cấu hình chính sách SpikeArrest để bảo vệ dịch vụ mục tiêu khỏi tình trạng lưu lượng truy cập tăng đột biến do mức sử dụng tăng, ứng dụng gặp lỗi hoặc các cuộc tấn công độc hại. Khi số lượng yêu cầu vượt quá giới hạn tốc độ, API sẽ trả về lỗi HTTP 500 cho một yêu cầu.

Thêm chính sách Chống đột biến vào một proxy API:

  1. Đăng nhập vào apigee.com/edge.
  2. Chọn Develop > API Proxies (Phát triển > API Proxy) trong thanh điều hướng bên trái.
  3. Chọn API proxy mà bạn muốn thêm chính sách Spike Arrest.

    Nếu đã làm theo hướng dẫn Bắt đầu, bạn có thể thêm mã này vào proxy "getstarted" mà bạn đã tạo trong phần Tạo một proxy API.

  4. Trong trình chỉnh sửa cho proxy API mới, hãy nhấp vào thẻ Phát triển:

    Trình chỉnh sửa proxy API cho phép bạn xem cấu trúc của proxy API và định cấu hình quy trình của proxy đó. Trình chỉnh sửa trình bày một bản trình bày trực quan về quy trình thông báo yêu cầu và phản hồi của proxy, cũng như một màn hình có thể chỉnh sửa của XML cơ bản xác định proxy.

  5. Trong ngăn Navigator (Trình điều hướng) bên trái, hãy nhấp vào PreFlow trong mục Proxy Endpoints > default (Điểm cuối của proxy > mặc định). (Các hướng dẫn khác sẽ đề cập đến khái niệm về luồng.)
  6. Nhấp vào nút +Step (Bước) ở trên cùng, tương ứng với Request PreFlow (Yêu cầu PreFlow). Thao tác này sẽ hiển thị danh sách được phân loại của tất cả các chính sách mà bạn có thể tạo.

    Nhấp vào Bước trong Request PreFlow

  7. Chọn Chặn đột biến trong danh mục Quản lý lưu lượng truy cập. Hộp thoại Chính sách mới sẽ xuất hiện:

    Tạo chính sách Chặn đột biến

  8. Giữ nguyên tên mặc định rồi nhấp vào Thêm. Chính sách mới được đính kèm vào luồng PreFlow của một yêu cầu.
  9. Trong Trình điều hướng, hãy đảm bảo rằng bạn vẫn chọn PreFlow trong Proxy Endpoints (Điểm cuối của proxy) > default (mặc định) và lưu ý những điều sau trong Trình chỉnh sửa proxy API:
    • Chính sách Spike Arrest-1 mới được thêm vào mục Policies (Chính sách) trong Trình điều hướng ở bên trái của Trình chỉnh sửa proxy API.
    • Biểu tượng Spike Arrest-1 được thêm vào chế độ xem Designer (Trình thiết kế) ở chính giữa trên cùng của API Proxy Editor (Trình chỉnh sửa proxy API). Đây là một bản trình bày trực quan về các luồng thông báo của proxy.
    • XML cho chính sách này sẽ xuất hiện trong Chế độ xem mã ở giữa dưới cùng của Trình chỉnh sửa proxy API.

    Xem PreFlow bằng chính sách Spike Arrest

  10. Trong Trình điều hướng, hãy chọn Spike Arrest-1 trong phần Policies (Chính sách) và lưu ý những điều sau trong API Proxy Editor (Trình chỉnh sửa proxy API):
    • Thông tin chi tiết về chính sách sẽ xuất hiện trong Chế độ xem của nhà thiết kế ở chính giữa phía trên cùng của Trình chỉnh sửa proxy API.
    • XML cho chính sách này sẽ xuất hiện trong Chế độ xem mã ở giữa dưới cùng của Trình chỉnh sửa proxy API.
    • Các giá trị thuộc tính và phần tử XML cho chính sách này sẽ xuất hiện trong Trình kiểm tra thuộc tính ở bên phải của Trình chỉnh sửa proxy API.

  11. Trong tệp XML cho chính sách, hãy thay đổi giá trị của phần tử <Rate> thành 1pm (tức là khoảng 2 yêu cầu được phép sau mỗi 60 giây trên đám mây).

    Bạn có thể chỉ định tốc độ dưới dạng giá trị số nguyên mỗi phút (pm) hoặc mỗi giây (ps). Đây là một giới hạn rất thấp và chỉ được dùng cho hướng dẫn này để minh hoạ chính sách. Thông thường, bạn sẽ đặt giới hạn này ở mức cao hơn nhiều.

    Lưu ý rằng giá trị Rate trong Trình kiểm tra thuộc tính cũng thay đổi thành "1pm". Ngoài ra, bạn có thể thay đổi giá trị Rate (Tốc độ) trong Trình kiểm tra thuộc tính và giá trị này sẽ được phản ánh trong khung hiển thị XML.

  12. Nhấp vào Lưu để lưu bản sửa đổi hiện tại cùng với các thay đổi của bạn.
  13. Gọi API bằng curl, thay thế tên tổ chức Apigee của bạn cho org_name:

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

    Ví dụ:

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

    Đảm bảo yêu cầu thành công và bạn thấy cùng một phản hồi XML như trước đây. (Bạn cũng có thể chỉ nhập URL vào trình duyệt web.)

  14. Thực thi lệnh curl (hoặc làm mới cửa sổ trình duyệt) thêm 2 hoặc 3 lần trong vòng một phút và lưu ý rằng bạn nhận được thông báo sau đây vì bạn đã vượt quá giới hạn tốc độ của chính sách:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    Nếu cố gắng thực hiện thêm cuộc gọi trong vòng một phút, bạn sẽ tiếp tục nhận được thông báo lỗi.

  15. Chỉnh sửa chính sách để đặt giới hạn <Rate> thành 15pm (tức là khoảng 2 lệnh gọi được phép sau mỗi 4 giây trên đám mây), sau đó lưu proxy API.
  16. Thực hiện lệnh curl hoặc làm mới trình duyệt nhiều lần (curl sẽ nhanh hơn). Lưu ý rằng nếu bạn thực hiện một hoặc hai cuộc gọi trong khoảng thời gian 4 giây, thì các cuộc gọi của bạn sẽ thành công. Nếu thực hiện các lệnh gọi nhanh, hơn 2 lệnh gọi trong vòng 4 giây, bạn sẽ gặp lỗi. Nhưng sau mỗi khoảng thời gian 4 giây, bạn có thể tiếp tục gọi điện, thay vì bị chặn trong cả phút (với chế độ cài đặt 1 giờ chiều).