選擇 API Gateway API 整合類型 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

選擇 API Gateway API 整合類型

您可以根據您要使用的整合端點類型以及希望資料移入移出整合端點的方式,選擇 API 整合類型。對於 Lambda 函數,您可以擁有 Lambda 代理整合或 Lambda 自訂整合。HTTP 端點可以有 HTTP 代理整合或 HTTP 自訂整合。對於 AWS 維修動作,您只能 AWS 整合非 Proxy 類型。API Gateway 也支援以 API Gateway 作為整合端點回應方法請求的模擬整合。

Lambda 自訂整合是整合的特殊案例,其中 AWS 整合端點會對應至 Lambda 服務的函數叫用動作

您可以程式設計的方式,在 Integration 資源上設定 type 屬性,來選擇整合類型。Lambda 代理整合的值為 AWS_PROXY。至於 Lambda 自訂整合和所有其他 AWS 整合,其值為 AWS。HTTP 代理整合和 HTTP 整合的值分別為 HTTP_PROXYHTTP。若為模擬整合,type 值為 MOCK

Lambda 代理整合支援以單一 Lambda 函數簡化的整合設定。設定很簡單,而且可隨後端發展,不必縮減現有的設定。基於這些原因,強烈建議您用於使用 Lambda 函數的整合。

反之,Lambda 自訂整合允許輸入和輸出資料格式有類似需求的各種整合端點,重複使用設定的映射範本。更進階的應用程式案例中,建議使用更為複雜的設定。

同樣地,HTTP 代理整合有簡化的整合設定,可隨後端發展,不必縮減現有的設定。HTTP 自訂整合與設定更密切,但允許其他整合端點重複使用設定的映射範本。

以下清單摘要說明支援的整合類型:

  • AWS:這類整合可讓 API 公開 AWS 服務動作。在 AWS 整合中,您必須同時設定整合請求和整合回應,並設定從方法請求到整合請求以及從整合回應到方法回應的必要資料映射。

  • AWS_PROXY:這類整合可將 API 方法與 Lambda 函數叫用動作,以靈活、多樣化和簡化的整合設定進行整合。這個整合依賴用戶端和已整合 Lambda 函數之間的直接互動。

    使用這類整合,也稱為 Lambda 代理整合,您就不需要設定整合請求或整合回應。API Gateway 將來自用戶端的傳入請求當作輸入傳送到後端 Lambda 函數。已整合的 Lambda 函數採用此格式的輸入並剖析所有可用來源的輸入,包括請求標頭、URL 路徑變數、查詢字串參數和適用的內文。函數會按照這個輸出格式傳回結果。

    這是透過 API Gateway 呼叫 Lambda 函數的慣用整合類型,不適用於任何其他 AWS 服務動作,包括除函數叫用動作以外的 Lambda 動作。

  • HTTP:這類整合可讓 API 公開後端的 HTTP 端點。使用 HTTP 整合,也稱為 HTTP 自訂整合,您必須設定整合請求和整合回應,缺一不可。您必須設定從方法請求到整合請求以及從整合回應到方法回應的必要資料映射。

  • HTTP_PROXY:HTTP 代理整合可讓用戶端使用單一 API 方法的簡化整合設定,存取後端的 HTTP 端點。您不用設定整合請求或整合回應。API Gateway 會將傳入請求從用戶端傳送到 HTTP 端點,將傳出回應從 HTTP 端點傳送到用戶端。

  • MOCK:這類整合可讓 API Gateway 傳回回應,卻無需進一步將請求傳送到後端。這對 API 測試很有用,因為它可用來測試整合設定,卻不會產生使用後端的費用,而且可以啟用 API 協作開發。

    在協作開發中,小組可以使用 MOCK 整合設定模擬其他小組擁有的 API 元件,區隔他們的開發成果。它也可用來傳回 CORS 相關的標頭,確保 API 方法允許 CORS 存取。事實上,API Gateway 主控台會整合 OPTIONS 方法以模擬整合支援 CORS。閘道回應是其他模擬整合的範例。