在 API 中新增 SpikeArrest 政策

本頁內容適用於 Apigee 和 Apigee Hybrid。

查看 Apigee Edge 說明文件。

課程內容

在本教學課程中,您將學習如何:

  • 新增一項影響請求和回應的策略。
  • 看看這項政策的效果。

事前準備

新增 SpikeArrest 政策

在本教學課程中,您將新增及設定 SpikeArrest 政策,防範因用量增加、用戶端錯誤或惡意攻擊而導致的流量突然暴增,保護目標服務。如果要求次數超過速率限制,API 會傳回 HTTP 429 錯誤。

如要將 SpikeArrest 政策新增至 API Proxy,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Apigee」>「Proxy 開發」>「API Proxy」頁面。

    前往 API Proxy

    如果您已完成「開始使用」教學課程,可以將這項政策新增至您在「建立 API Proxy」中建立的 API Proxy。

  2. 點選「Develop」分頁標籤。
  3. 在左側窗格中,按一下「政策」列中的「+」按鈕。
  4. 在「建立政策」對話方塊中,點選「選取政策類型」欄位,然後向下捲動至「流量管理」,並選取「SpikeArrest」。

  5. 視需要變更政策的「名稱」和「顯示名稱」。 根據預設,Apigee 會提供政策名稱的簡短前置字串,在此案例中為 SA-。您可以在前置字串後方加上以連字號分隔的一連串描述性字詞。請參閱 命名約定。

    建立政策對話方塊。

    完成後,點選建立建立保單。

尖峰流量防範政策建立完成後,即可將其新增至 PreFlow 的步驟中。

  1. 在左側窗格中選擇 代理端點 > 預設 > PreFlow:

    在 Proxy 探索器中選取 PreFlow 的目標端點。

    注意:您可能需要在右側窗格中展開視覺化編輯器,才能看到所有元素。 如要這麼做,請按一下並稍微向下拖曳視覺化編輯器和文字編輯器之間的分隔線。

  2. 在視覺編輯器右下方的「Response」窗格中,點選「PreFlow」旁的「+」按鈕:

    在「Response」窗格中,點選「PreFlow」旁的「+」按鈕。

  3. 在「Add policy step」對話方塊中,選取「Spike Arrest」政策。
  4. 按一下「新增」即可附加政策。

    「Response」窗格現在會顯示「Spike Arrest」政策:

    「Response」窗格中顯示尖峰流量防範政策。

現在您已將尖峰流量防範政策附加至 PreFlow,可以試著變更政策的程式碼:

  1. 在「回應」窗格中,選取「SA-」。

    「政策」分頁中顯示的尖峰流量防範政策。

  2. 文字編輯器會顯示 Proxy 的 XML 程式碼,包括 PreFlow 的「Response」元素中的 Spike Arrest 政策步驟。
    <?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. 在政策的 XML 中,將 <Rate> 元素的值變更為 1pm (這表示雲端每 60 秒約允許兩項要求)。

    你可以指定每分鐘 (pm) 或每秒 (ps) 的整數值。這是非常低的限制,僅用於本教學課程,以示範政策。通常會將上限設得高出許多。

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

  4. 按一下「儲存」,即可儲存目前的修訂版本和變更。