在 API 中新增尖峰流量防範政策

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

課程內容

透過本教學課程,你將會瞭解:

  • 新增會影響要求和回應的政策。
  • 查看政策效果。

軟硬體需求

  • 在您的 Proxy 中至少一項政策 (也是「開始使用」教學課程的一部分)。
  • 已在裝置上安裝 curl,透過指令列發出 API 呼叫。

新增尖峰流量防範政策

在這個教學課程中,您將新增並設定 SpikeArrest 政策來保護目標 服務以因應流量突然攀升的情況 或惡意攻擊如果要求數量超過頻率限制,API 會傳回 要求的 HTTP 500 錯誤。

將 Spike Arrest 政策新增至 API Proxy:

  1. 登入 apigee.com/edge
  2. 依序選取「開發」>「開發」API Proxy
  3. 選取要新增尖峰流量政策的 API Proxy。

    完成「開始使用」教學課程後,可以將其新增到 「開始」請參閱「建立 API Proxy

  4. 在新 API Proxy 的編輯器中,按一下「Develop」(開發) 分頁標籤:

    「API Proxy 編輯器」可讓您查看 API Proxy 的結構並設定其流程。 編輯器會以視覺化方式呈現 Proxy 的要求和回應訊息 流程以及定義 Proxy 的基礎 XML 的可編輯畫面。

  5. 在左側的「Navigator」窗格中,按一下 Proxy 下的 PreFlow 端點 >default。(其他教學課程會介紹 流程)。
  6. 按一下與 Request PreFlow 相對應的頂端「+步驟」按鈕。這個 會顯示可建立政策的分類清單。

    按一下「Request PreFlow」中的步驟

  7. 在「流量管理」類別中選取「Spike Arrest」。新政策 對話方塊出現:

    建立尖峰流量防範政策

  8. 保留預設名稱,然後按一下「新增」。新政策會附加至 要求的 PreFlow 流程
  9. 在 Navigator 中,確定 PreFlowProxy 端點位於 Proxy 端點 >仍為選取狀態,且在 API Proxy 編輯器中請注意下列事項:
    • 新的 Spike Arrest-1 政策位於 API Proxy 編輯器左側的導覽器。
    • 「Spike Arrest-1」圖示已新增到 Designer view, 位於 API Proxy 編輯器上方中央的示意圖 以及 Proxy 的訊息流程
    • 政策的 XML 會顯示在 Code view 位於 API Proxy 編輯器的正下方

    查看「含有激增尖峰」政策的 PreFlow 政策

  10. 在「Navigator」中,選取「Policy」下方的「Spike Arrest-1」,然後記下 在 API Proxy 編輯器中 執行以下動作:
    • 政策詳細資料會顯示在頂端的「設計人員檢視畫面」中 API Proxy 編輯器
    • 政策的 XML 會顯示在底部的「程式碼檢視」中 API Proxy 編輯器
    • 政策的 XML 元素和屬性值會顯示在 API Proxy 編輯器右側的屬性檢查器

  11. 在政策的 XML 中, <Rate> 元素到 下午 1 點 ( 會在雲端中每 60 秒允許約 2 個要求。

    您可以將速率指定為每分鐘 (pm) 或每分鐘的整數值 秒 (ps)。這個限制很低,僅供本教學課程使用 請務必說明政策內容通常情況下,您可將出價上限調高到較高的值。

    請注意,屬性檢查器中的 Rate 值也會變更為「1pm」。 或者,您也可以在屬性檢查器中變更「Rate」值。 並反映在 XML 檢視畫面中

  12. 按一下「儲存」,即可儲存目前的修訂版本包含變更內容。
  13. 使用 curl 呼叫 API,改用您的 Apigee 機構名稱 針對 org_name

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

    例如:

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

    確認要求成功,且您會看到與先前相同的 XML 回應。 (您也可以直接在網路瀏覽器中輸入網址)。

  14. 再執行二到三個以上的 curl 指令 (或重新整理瀏覽器視窗) 並在 1 分鐘內收到以下訊息,因為您超過 政策的頻率限制:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    如果您嘗試在一分鐘內撥打更多電話,仍會造成錯誤 撰寫新的電子郵件訊息

  15. 編輯政策,將「<Rate>」的限制設為 晚上 15 點 (在 然後儲存 API Proxy
  16. 執行 curl 指令或重複重新整理瀏覽器 (速度較快 curl)。 請注意,如果您在 4 秒內發出一或兩次呼叫,則呼叫成功。如果發生以下情況: 快速呼叫超過兩秒內,應該就會造成錯誤。但之後 您可以繼續撥打電話,不會被封鎖 。