Amazon API Gateway 是一種全受管的服務,可讓開發人員輕鬆地發佈、維護、監控、保護和操作任何規模的 API。它是按用量付費的服務,可處理執行大量 API 時與安全性和可靠性有關的所有無差別繁重工作。

隨著行動裝置的普及和物聯網 (IoT) 的興起,透過 API 讓應用程式存取後端系統和資料的情況越來越普遍。由於很多應用程式都使用這些 API,而且開發人員社群也倚賴這些 API,因此花費在開發和管理 API 的時間和努力越來越多。為了讓您更容易使用這些 API,API Gateway 可產生多種語言的用戶端 SDK,包括 JavaScript、iOS 和 Android。

支援 REST API 和 WebSocket API

透過 API Gateway,您可以使用 HTTP API 或 REST API 建立 RESTful API。HTTP API 提供了建置無需 API 管理功能 API 的最佳方式。HTTP API 已針對無伺服器工作負載和 HTTP 後端進行最佳化 - 相較於 API Gateway 的 REST API,可節省最高達 71% 的成本並減少 60% 的延遲。針對在單一解決方案中需要 API 代理功能和 API 管理功能的工作負載 (例如使用計劃和 API 金鑰),API Gateway 提供了 REST API。若要查看 HTTP API 和 REST API 支援功能並排比較,請瀏覽文件。若要建立即時雙向通訊應用程式,例如聊天應用程式和串流儀表板,則使用 WebSocket API。若要進一步了解 API Gateway 的 RESTful API 和 WebSocket API,請瀏覽我們的常見問答集頁面

私有整合 AWS ELB 和 AWS Cloud Map

有了 API Gateway,您可以將請求路由至 VPC 中的私有資源。您可以充分利用 HTTP API,為私有 ALB、私有 NLB 和 AWS Cloud Map 中註冊的 IP 型服務 (例如 ECS 任務) 背後的服務建置 API。

彈性

API Gateway 可讓您根據 API 中每個 HTTP 方法的每秒請求數設定調節規則,以協助您管理後端系統的流量。API Gateway 可處理 API 收到之任何等級的流量,因此您可以專注在商業邏輯和服務上,而不需擔心基礎架構的維護。如果使用 REST API,您還可以利用可自訂的金鑰和以秒計的存活時間為 API 資料設定快取,以避免每次收到請求時干擾後端服務。

輕鬆建立和部署 API

有了 API Gateway,您可以輕鬆快速地為在 AWS Lambda 執行的程式碼建立自訂 API,然後從您的 API 呼叫 Lambda 程式碼。API Gateway 可以執行您帳戶中的 AWS Lambda 程式碼、啟動 AWS Step Functions 狀態機器,或是呼叫 AWS Elastic Beanstalk、Amazon EC2 或 AWS 外部有可公開存取 HTTP 端點的 Web 服務。您可以使用 API Gateway 主控台定義 REST API 及其相關聯的資源和方法、管理 API 生命週期、產生用戶端 SDK 和檢視 API 指標。

API 操作監控

部署好 API 並開始使用後,API Gateway 會提供您一個儀表板,讓您以視覺化的方式監控服務呼叫。API Gateway 主控台已經與 Amazon CloudWatch 整合,因此您可以使用後端效能指標,像是 API 呼叫、延遲和錯誤率。由於 API Gateway 使用 CloudWatch 來記錄監控資訊,因此您可以在 API Gateway API 設定自訂警示。API Gateway 還能將 API 執行錯誤記錄到 CloudWatch Logs,以方便偵錯。

AWS 授權

要授權並驗證 AWS 服務的 API 請求,API Gateway 可以協助您為 REST API 和 WebSocket API 利用簽章版本 4。使用簽章版本 4 身份驗證,您可以透過 AWS Identity and Access Management (IAM) 和存取政策來授與 API 和您所有其他 AWS 資源的存取權。您也可以使用 AWS Lambda 函數來確認和授權 bearer 字符 (如 JWT 字符) 或 SAML 聲明。

第三方開發人員的 API 金鑰

如果使用 REST API,API Gateway 可協助您管理存取 API 之第三方開發人員的商業網路。您可以在 API Gateway 上建立 API 金鑰、在每個 API 金鑰上設定微調存取許可,並將它們發佈給第三方開發人員以供存取 API。另外,也可以為每個 API 金鑰分別定義設定調節和請求配額限制的計劃。API 金鑰的使用完全是選擇性的,且必須依個別方法啟用。

產生 SDK

如果使用 REST API,API Gateway 可為多種平台產生用戶端 SDK,讓您從應用程式快速測試新的 API,並將 SDK 分配給第三方開發人員。產生的 SDK 可處理 API 金鑰,並使用 AWS 登入資料簽署請求。API Gateway 可以產生以 Java、JavaScript、適用於 Android 的 Java、適用於 iOS 的 Objective-C 或 Swift,及 Ruby 所撰寫的用戶端軟體開發套件。您可以使用 AWS CLI,透過呼叫 get-sdk 命令來為支援平台產生及下載 API 的軟體開發套件。

API 生命週期管理

如果使用 REST API,API Gateway 可讓您同時執行相同 API 的多個版本,如此一來,即使發佈最新的版本,應用程式仍然可以持續呼叫之前的 API 版本。API Gateway 還能協助您管理每個 API 版本的多個發行階段,像是 alpha、beta 和生產。可以根據您的 API 設定,將每個 API 階段設定為與不同的後端端點互動。API 的特定階段和版本可以與自訂的網域名稱關聯,並透過 API Gateway 進行管理。階段和版本管理可讓您輕鬆測試新的 API 版本,以便在舊版 API 中增強或增加新的功能,同時確保回溯相容性,供使用者社群轉換至最新版本時使用。