什麼是政策?

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

您可以使用 Apigee 的政策編寫 API 行為,完全不需要編寫程式碼。政策就像是模組,可實作特定的有限管理功能。政策可讓您輕鬆可靠地將常見類型的管理功能新增至 API。政策提供安全性、頻率限制、轉換和中介服務等功能,讓您不必自行編寫程式碼並維護這項功能。

您不必侷限於 Apigee 提供的政策類型組合。您也可以編寫自訂指令碼和程式碼 (例如 JavaScript 應用程式),擴充 API 代理功能,並在 Apigee 政策支援的基本管理功能之上進行創新。

本主題將概略說明政策類型和在 Apigee 中的用途。如要瞭解特定政策,請參閱「政策參考資料總覽」。

政策類型和類別

從技術層面來說,政策就是 XML 格式的設定檔。每項政策的結構 (例如必要和選用設定元素) 皆由 XML 結構定義定義。如果您精通 XML 工具,建議您熟悉 GitHub 上的 API 平台範例中的政策結構定義。

Apigee 政策分為下列功能類別。政策參考總覽列出各政策類別適用的政策。

流量管理

您可以透過 API Proxy 控管流量管理類別中的政策,控制要求和回應訊息的流量。這些政策同時支援營運和業務層級的控管。您可以透過這些設定控管原始吞吐量,也可以針對個別應用程式控管流量。流量管理政策類型可讓您強制執行配額,並協助您減輕拒絕服務攻擊。

安全性

安全性類別中的政策支援驗證、授權和內容安全性。

中介服務

中介服務類別中的政策可讓您主動操作透過 API 代理程式傳送的訊息。可讓您將訊息格式從 XML 轉換為 JSON (反之亦然),或將一種 XML 格式轉換為另一種 XML 格式。您也可以使用這些函式剖析訊息、產生新訊息,以及變更外寄訊息的值。中介服務政策也會與 Apigee 公開的基本服務互動,讓您在執行階段擷取應用程式、開發人員、安全性權杖和 API 產品的資料。

擴充功能

擴充功能類別中的政策可讓您利用 Apigee 的擴充性,以您選擇的程式設計語言實作自訂行為。

附加政策

如要將政策套用至 API Proxy,您必須在流程中將政策附加至 Proxy。 如需相關資訊,請參閱本節的其他主題,包括「在 UI 中附加及設定政策」和「在 XML 檔案中附加及設定政策」。

部署政策異動

如要讓政策變更生效,您必須將 API Proxy 修訂版本部署至環境。附加政策或變更現有政策後,請使用 Apigee UI 或 Apigee API 部署變更

確認政策執行

如要確認政策是否已正確強制執行,必須由 HTTP 用戶端叫用 API。如要驗證 Quota 設定,請設定配額 (例如每分鐘一項要求),然後向 API 提交多項要求,超出您在配額政策中設定的配額限制。(在下方要求中,ProxyEndpoint 中設定為基本路徑的 URI 路徑為 /weather)。

http://ORG_NAME-test.apigee.net/weather/forecastrss?w=12797282

在 1 分鐘內提交多個要求後,您應該會看到下列錯誤訊息:

{
   "fault":{
      "faultstring":"policies.ratelimit.QuotaViolation",
      "detail":{
         "errorcode":"policies.ratelimit.QuotaViolation"
      }
   }
}

這表示 Apigee 正在強制執行 Quota 政策。

以政策為準的錯誤處理

請注意上方錯誤訊息的格式。其中包含 faultstring 屬性和 errorcode 屬性。在許多情況下,您需要實作某些行為來處理這些錯誤。舉例來說,您可能會想向應用程式已超過 Quota 的開發人員發出自訂訊息。

如要進一步瞭解錯誤處理,請參閱「處理錯誤」。

最佳做法:常見的政策組合

為符合基本管理需求,API Proxy 通常會強制執行下列政策:

基本 API 金鑰驗證

ProxyEndpoint 要求流程:
  1. SpikeArrest
  2. XMLThreatProtectionJSONThreatProtection
  3. API 金鑰驗證
  4. Quota
  5. ResponseCache
ProxyEndpoint 回應流程:
  1. ResponseCache

基本轉換:JSON 轉換為 XML

要求流程:
  1. SpikeArrest
  2. JSONThreatProtection
  3. API 金鑰驗證
  4. Quota
  5. JSONToXML
回應流程:
  1. XMLToJSON
  2. ResponseCache