本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理 APIs
適當的 API 管理可讓您的微型服務可供內部和外部消費者存取。 AWS 提供各種服務,您可以一起用來安全地公開您的微型服務 APIs。這些服務可讓您強制執行 APIs的安全性,並從中央位置實作監控和可觀測性。如果您的 APIs 使用者與託管服務的 地理位置相距,您也可以使用 Amazon CloudFront AWS 區域 來改善效能。
Amazon API Gateway
Amazon API Gateway 是一項全受管服務,可讓開發人員建立、發佈、維護、監控和保護任何規模的 REST 和 WebSocket APIs。您可以使用 API Gateway 實作本指南通訊模式一節所述的許多模式。
REST APIs 有兩種主要類型:REST 和 HTTP。這兩種類型都支援 RESTful APIs但提供不同的功能。若要判斷最符合您的需求,請參閱 APIs Gateway 文件中的選擇 REST APIs和 HTTP API。本指南的本節著重於 API Gateway REST APIs。
使用 API Gateway 做為 APIs的進入點提供單一位置來實作常見的考量,例如請求驗證和安全性。API Gateway REST APIs提供請求驗證,可讓您使用 JSON 結構描述
身分驗證和授權
API Gateway REST APIs支援下列身分驗證 (authN) 和授權 (authZ) 機制:
-
IAM – 如果您使用 IAM,則必須使用 AWS Signature 第 4 版 (SigV4) 簽署對 API 的請求。
-
Amazon Cognito – API Gateway 將驗證呈現的承載字符是否由 Amazon Cognito 使用者集區發出。如果您已經在使用第三方身分提供者 (IdP),也可以設定 Amazon Cognito 使用者集區來整合。您也可以使用 Amazon Cognito 使用者集區進行machine-to-machine(M2M) 身分驗證。
-
AWS Lambda 授權方 – API Gateway 會叫用您指定的 Lambda 函數,以執行您想要的任何檢查,以判斷是否應授權請求。
如需詳細資訊,請參閱 API Gateway 文件中的控制和管理對 REST APIs存取。
API 金鑰和速率限制
您可以使用 APIs金鑰和用量計劃,控制誰可以呼叫您的 API 和以什麼速率呼叫。API 金鑰不應用於身分驗證,但可與先前提到的方案搭配使用。使用者不一定需要提供自己的 API 金鑰,例如,Lambda 授權方可以傳回使用者的 API 金鑰。用量計劃可讓您指定輸送量、爆量限制和每月配額。如需詳細資訊,請參閱 API Gateway 文件中的 REST APIs 的使用計劃和 API 金鑰。
公有和私有 APIs
可透過網際網路存取的 API Gateway REST APIs 支援兩種端點類型:
-
邊緣最佳化,這表示發起人的請求會路由到附近的 CloudFront 存在點 (POP)。這可以改善不同地理位置的用戶端的效能。
-
區域,這表示請求路由到特定 內的資源 AWS 區域。當您的所有用戶端都靠近部署 API 的區域時,這是不錯的選擇。
API Gateway REST APIs也支援私有 API 端點,可透過使用界面 VPC 端點從虛擬私有雲端 (VPC) 存取。您也可以在其他 VPC 甚至其他 VPC 中建立介面 VPCs 端點,安全地共用私有 REST APIs AWS 帳戶。如需詳細資訊,請參閱 API Gateway 文件中的 REST APIs API 端點類型。
何時使用 API Gateway
API Gateway 是 RESTful Web 服務和即時 WebSocket 連線的理想選擇。當您在 API Gateway 中使用 WebSocket APIs 時,您可以新增連線和中斷連線事件的行為,例如將連線 IDs儲存在與用戶端屬性相關聯的外部資料存放區中。您也可以使用訊息屬性,將請求路由到自訂行為。
REST 和 WebSocket APIs 都可以直接與許多 AWS 服務 整合,而無需單獨的運算資源,例如 Lambda 函數。這可以提高效能並降低成本。
REST APIs同時支援路徑型和標頭型路由,您可以單獨或一起使用。常見的模式是提供 REST API 做為許多 APIs,以實作先前討論的共用問題,然後採取類似反向代理的行為,並將授權請求路由到正確的 API 端點。