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.
Chuyển đến tài liệu về 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 có ảnh hưởng đến yêu cầu và phản hồi.
  • Xem tác động của chính sách.

Bạn cần

  • Í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 lệnh gọi API từ dòng lệnh.

Thêm chính sách về Chống tăng đột biến

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 chống lại tình trạng lưu lượng truy cập tăng đột biến có thể gây ra do tăng mức sử dụng, ứng dụng bị 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 Spike Arrest vào proxy API:

  1. Đăng nhập vào apigee.com/edge.
  2. Chọn Phát triển > Proxy API trong thanh điều hướng bên trái.
  3. Chọn proxy API mà bạn muốn thêm chính sách Bắt buộc tăng đột biến.

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

  4. Trong trình chỉnh sửa cho proxy API mới, 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 luồng của proxy đó. Trình chỉnh sửa này trình bày trực quan quy trình thông báo yêu cầu và phản hồi của proxy, cũng như màn hình có thể chỉnh sửa của XML cơ sở xác định proxy.

  5. Trong ngăn Trình điều hướng bên trái, hãy nhấp vào PreFlow trong phần Proxy Endpoints > default (Điểm cuối 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 +Bước trên cùng, tương ứng với Request PreFlow. Thao tác này sẽ hiển thị một danh sách được phân loại gồm tất cả các chính sách mà bạn có thể tạo.

    Nhấp vào Bước trong Yêu cầu PreFlow

  7. Chọn Bắt giữ ván trượt trong danh mục Quản lý giao thông. Hộp thoại Chính sách mới sẽ xuất hiện:

    Tạo chính sách về Bắt buộc tăng đột biến

  8. Để nguyên tên mặc định và nhấp vào Thêm. Chính sách mới này được đính kèm với quy trình PreFlow của một yêu cầu.
  9. Trong Trình điều hướng, hãy đảm bảo rằng PreFlow trong phần Proxy Endpoints > default vẫn được chọn 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 phần Chính sách trên Trình điều hướng ở phía 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 dành cho Nhà thiết kế ở giữa trên cùng của Trình chỉnh sửa proxy API. Đây là hình ảnh minh hoạ luồng thông báo của proxy.
    • Mã XML cho chính sách này sẽ hiển thị trong Chế độ xem mã ở chính giữa dưới cùng của Trình chỉnh sửa proxy API.

    Xem chính sách về PreFlow với Spike Arrest

  10. Trong Trình điều hướng, hãy chọn Spike Arrest-1 trong phần Chính sách và lưu ý những nội dung sau trong 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 dành cho nhà thiết kế ở trên cùng của Trình chỉnh sửa proxy API.
    • Mã XML cho chính sách này sẽ hiển thị trong Chế độ xem mã ở phần 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 của chính sách sẽ xuất hiện trong Property Inspector (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 XML cho chính sách này, hãy thay đổi giá trị của phần tử <Rate> thành 1 giờ chiều (tức là khoảng 2 yêu cầu được cho phép cứ 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à giới hạn rất thấp và chỉ dùng cho hướng dẫn này để minh hoạ chính sách. Thông thường, bạn đặt giới hạn cao hơn nhiều.

    Lưu ý rằng giá trị Rate trong Trình kiểm tra tài sản cũng thay đổi thành "1pm". Ngoài ra, bạn có thể thay đổi giá trị Rate (Giá) trong Trình kiểm tra cơ sở lưu trú và giá trị đó sẽ được phản ánh trong chế độ xem 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 này bằng curl, thay thế tên tổ chức Apigee của bạn bằng 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 sẽ thấy phản hồi XML tương tự 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 nữa trong vòng 1 phút. Bạn sẽ nhận được thông báo sau vì đã vượt quá giới hạn số lượng yêu cầu của chính sách:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    Nếu bạn thử 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. Hãy chỉnh sửa chính sách của bạn để đặt giới hạn <Rate> thành 15 giờ chiều (tức là khoảng 2 lệnh gọi được phép cứ mỗi 4 giây trên đám mây), sau đó lưu proxy API.
  16. Thực thi lệnh curl hoặc làm mới trình duyệt nhiều lần (curl 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 bạn thực hiện cuộc gọi nhanh, nhiều hơn 2 cuộc gọi trong vòng 4 giây, bạn sẽ gặp lỗi. Tuy nhiên, 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 (theo chế độ cài đặt là 1 giờ chiều).