一般

問:什麼是 Amazon API Gateway?

Amazon API Gateway 是一種全受管的服務,可讓開發人員輕鬆發佈、維護、監控和保護任何規模的 API。只要按幾下 AWS 管理主控台,您就能建立 API 做為應用程式從後端服務 (例如,在 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Container Service (Amazon ECS) 或 AWS Elastic Beanstalk 上執行的應用程式、在 AWS Lambda 上執行的程式碼,或任何 Web 應用程式) 存取資料、商業邏輯或功能的「門戶」。Amazon API Gateway 負責處理有關接受和處理多達數十萬個並行 API 呼叫的所有工作,包括流量管理、授權和存取控制、監控和 API 版本管理。Amazon API Gateway 沒有最低費用或啟動成本。對於 HTTP API 和 REST API,您只需為接收的 API 呼叫以及傳出的資料量付費。對於 WebSocket API,您只需為傳送和接收的訊息以及使用者/裝置連接到 WebSocket API 的時間付費。

問:為什麼要使用 Amazon API Gateway?

Amazon API Gateway 為開發人員提供一個簡單、靈活、全受管、按用量付費的服務,可以處理針對應用程式後端而建立和操作穩固 API 的所有層面。透過 API Gateway,您可以用較少的投資更快速啟動新服務,以便將重點放在建置核心商業服務上。API Gateway 的建置是為了協助您建立和管理 API 的幾個層面:

1) 計量。API Gateway 可協助定義計量和限制第三方開發人員對您 API 存取的計劃。您可以依個別 API 金鑰定義一組計劃、設定調節和配額限制。API Gateway 會自動測量到 API 的流量,並讓您擷取每個 API 金鑰的使用率資料。

2) 安全性。API Gateway 提供的多個工具可讓您授權 API 存取和控制服務操作存取。API Gateway 可讓您利用 AWS 管理和安全工具 (例如,AWS Identity and Access Management (IAM) 和 Amazon Cognito) 授權 API 存取。API Gateway 可使用 AWS 驗證本身 API 的相同方法,代替您驗證已簽署的 API 呼叫。使用編寫為 AWS Lambda 函數的自訂授權方,API Gateway 也可以協助您驗證傳入的 bearer 字符,這樣就能解決後端程式碼的授權問題。

3) 彈性。API Gateway 協助您利用調節管理流量,以便讓後端操作能應付流量峰值。API Gateway 也可以快取 API 呼叫的輸出,以避免不必要地呼叫後端系統,藉此協助您提升 API 的效能及改善最終使用者經驗的延遲情況。

4) 運作監控。發佈 API 並開始使用後,API Gateway 會提供您一個指標儀表板,讓您監控服務呼叫。API Gateway 儀表板透過與 Amazon CloudWatch 的整合,為您提供後端效能指標,涵蓋 API 呼叫、延遲資料以及錯誤率。您可以為 API 內的每個方法啟用詳細的指標,同時接收錯誤、存取或偵錯 CloudWatch Logs 中的記錄。

5) 生命週期管理。在 API 發佈之後,通常您需要建置並測試增強功能或新增功能的新版本。API Gateway 可讓您同時測試多個 API 版本和每個版本的多個階段,這樣即使新的 API 版本發佈之後,現有的應用程式仍然可以繼續呼叫之前的版本。

6) 專為開發人員而設計。API Gateway 可讓您快速建立 API,為它們的回應指派靜態內容,以降低跨團隊開發投入,縮短應用程式的上市時間。倚賴 API 的團隊可以在您建置後端程序時開始開發。

7) 即時雙向通訊。 建立即時的雙向通訊應用程式,例如聊天應用程式、串流儀表板、通知,不必執行或管理任何伺服器。API Gateway 在連接的使用者之間維護持久性連線,使它們之間能夠傳輸訊息。

問:Amazon API Gateway 支援哪些 API 類型?

Amazon API Gateway 提供了兩個選項來建立 RESTful API、HTTP API 和 REST API,也提供了一個選項來建立 WebSocket API。

HTTP API:HTTP API 已經過最佳化,適合用來建立各種 API 以當作 AWS Lambda 函數或 HTTP 後端的代理,是無伺服器工作負載的首選。它們目前不提供 API 管理功能。

REST API:REST API 在單一解決方案中提供 API 代理功能和 API 管理功能。 REST API 提供 API 管理功能,例如使用計劃、API 金鑰、發佈和營利 API。

WebSocket API:WebSocket API 可確保連接用戶端之間的持續連線,以便進行即時訊息通訊。搭配 API Gateway 中的 WebSocket API,您可以使用 AWS Lambda 函數、Amazon Kinesis 或任何在從連接用戶端接收訊息時要呼叫的 HTTP 端點,來定義後端整合。

問:如何在 API Gateway 中開始使用 HTTP API?

要開始使用 HTTP API,您可以使用 Amazon API Gateway 主控台、AWS CLI,AWS SDK 或 AWS CloudFormation。要進一步了解如何開始使用 HTTP API,請瀏覽我們的文件

問: 如何在 API Gateway 中開始使用 REST API?

要開始使用 REST API,您可以使用 Amazon API Gateway 主控台、AWS CLI 或 AWS SDK。要進一步了解如何開始使用 REST API,請瀏覽我們的文件

問: 建立 RESTful API 時,何時應使用 HTTP API,何時又應使用 REST API?

您可以在 Amazon API Gateway 中同時使用 HTTP API 和 REST API 來建立 RESTful API。

HTTP API 已經過優化,適合用來建立各種 API 以當作 AWS Lambda 函數或 HTTP 後端的代理,是無伺服器工作負載的首選。HTTP API 是比 REST API 更便宜也更快速的替代方法,但是它們目前不支援 API 管理功能。REST API 適用於在單一解決方案中,需要 API 代理功能和 API 管理功能的 API。

HTTP API 適用於:

  1. 為 AWS Lambda 或任何 HTTP 端點建立代理 API
  2. 建立具備 OIDC 和 OAuth 2 授權的現代 API 
  3. 工作負載可能會變得非常大
  4. 適用於延遲敏感型工作負載的 API
 
REST API 適合以下情況:
 
  1. 希望為建立、管理和發佈其 API 時所需的全部功能,支付單一價格點的客戶。 

問: API Gateway 的 HTTP API 提供哪些標準功能?

HTTP API 提供了標準的 CORS 支援、用於身份驗證和授權的 OIDC 和 OAuth2 支援,以及分階段的自動部署。

問: 我是否可以匯入 OpenAPI 定義來建立 HTTP API 嗎?

是,您可以使用 OpenAPI 3 匯入 API 定義。這樣就會建立路由、整合和 API 模型。要進一步了解如何匯入 OpenAPI 定義,請參閱我們的文件

問: 如何從目前的 REST API 移轉至 HTTP API?

要將目前的 REST API 移轉至 Amazon API Gateway 中的 HTTP API,請執行以下操作:

  1. 檢查 HTTP 中是否提供了所有需要的功能。要查看完整的功能清單,請瀏覽我們的文件。 
  2. 移至您的 REST API,再從 REST API 匯出 OpenAPI 定義
  3. 移至您的 HTTP API,再匯入來自上一步的 OpenAPI 定義
  4. 按預期測試 API 函數
  5. 使用新的 URL 更新您的用戶端

雖然您的 API 可能運作,但也許會發現還缺某些功能。要找出任何缺少的功能,請查看 Import 操作中的 InfoWarningError 欄位。如需將 REST API 移轉至 HTTP API 的詳細資訊,請參閱我們的文件

問: 如何知道目前的 REST API 是否可以當作 HTTP API?

首先,移至您的 REST,再從 REST API 匯出 OpenAPI 定義。然後,移至您的 HTTP API,再匯入來自上一步的 OpenAPI 定義。雖然您的 API 可能運作,但也許會發現還缺某些功能。要找出任何缺少的功能,請查看 Import 操作中的 InfoWarningError 欄位。AWS CLI 會在您的資訊和警告欄位中傳回 API 的相關資訊。如需詳細資訊,請閱讀我們的文件

問:如何在 Amazon API Gateway 中開始使用 WebSocket API?

一開始,您可以使用 AWS 管理主控台、AWS CLI 或 AWS SDK,建立 WebSocket API。然後您可以設定 WebSocket 路由來指出後端服務,例如 AWS Lambda、Amazon Kinesis 或任何根據訊息內容要呼叫的 HTTP 端點。請參閱文件了解如何在 API Gateway 中開始使用 WebSocket API。

問:我可以建立 HTTPS 端點嗎?

可以,使用 Amazon API Gateway 建立的所有 API 只會公開 HTTPS 端點。Amazon API Gateway 不支援未加密的 (HTTP) 端點。預設情況下,Amazon API Gateway 會指派內部網域給自動使用 Amazon API Gateway 憑證的 API。設定 API 在自訂網域名稱下執行時,您可以為網域提供自己的憑證。

問:Amazon API Gateway 可以與哪些資料類型搭配使用?

在 Amazon API Gateway 上建立的 API,可以接受 HTTP API、REST API 和 WebSocket API 透過 HTTPS 傳送的任何承載。一般資料格式包括 JSON、XML、查詢字串參數以及請求標頭。您可以為 API 回應宣告任何內容類型,然後使用轉換範本,將後端回應變更為想要的格式。

問:Amazon API Gateway 可以與哪些後端通訊?

Amazon API Gateway 可在您的帳戶中執行 AWS Lambda 函數、啟動 AWS Step Functions 狀態機器、或者呼叫託管於 AWS Elastic Beanstalk、Amazon EC2 的 HTTP 端點、以及非 AWS 託管的 HTTP 操作,皆可經由公有網際網路取得。API Gateway 也可讓您指定映射範本,以產生可傳回的靜態內容,協助您在後端就緒前模擬 API。您也可以將 API Gateway 與其他 AWS 服務直接整合;例如,您可以在 API Gateway 中公開 API 方法,將資料直接傳送到 Amazon Kinesis。

問:Amazon API Gateway 可以在哪些用戶端平台上產生 SDK?

API Gateway 可以為使用 Android 與 iOS (Swift 和 Objective-C) 的行動應用程式開發、以及使用 JavaScript 的 Web 應用程式開發產生自訂 SDK。API Gateway 還支援產生適用於 Ruby 和 Java 的 SDK。一旦在 API Gateway 中定義 API 及其模型之後,您就可以使用 AWS 主控台或 API Gateway API 來產生及下載用戶端 SDK。在 Amazon API Gateway 中會為 REST API 產生用戶端 SDK。

問:哪些 AWS 區域提供 Amazon API Gateway?

要知道哪些區域提供 HTTP API、REST API 和 WebSocket API,請查看這裡的 AWS 區域表。

問:我可以透過 Amazon API Gateway 主控台管理什麼?

您可以透過 Amazon API Gateway 主控台定義 REST API 及其關聯的資源和方法、管理 API 生命週期、產生用戶端 SDK 和檢視 API 指標。您也可以使用 API Gateway 主控台定義 API 的用量計劃、管理開發人員的 API 金鑰,以及設定調節和配額限制。透過 API Gateway API 可以使用所有相同的動作。

問:什麼是資源?

資源是屬於 API 網域一部分的型別物件。每個資源可能有關聯的資料模型、與其他資源的關係,以及可回應不同的方法。您也可以將資源定義為變數,以攔截對多個子資源的請求。

問:什麼是方法?

REST API 內的每個資源都可以支援一或多個標準 HTTP 方法。您可以定義每個資源支援哪些動詞 (GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS) 以及它們的實作。例如,對 cars 資源使用 GET 時,應該要傳回汽車清單。為了將資源內的所有方法連接到單一後端端點,API Gateway 也支援特殊的 "ANY" 方法。

問:什麼是用量計劃?

用量計劃可協助您宣告針對第三方開發人員的計劃,這些計劃會限制他們只能存取特定 API、定義調節和請求配額限制,以及將他們與 API 金鑰建立關聯。您也可以擷取個別 API 金鑰的使用率資料,以分析 API 用量並產生帳單文件。例如,您可以建立基本、專業和企業計劃;設定基本用量計劃為每一天只允許 1,000 個請求,且每秒最多 5 個請求 (RPS)。

問:什麼是 Amazon API Gateway API 生命週期?

在 Amazon API Gateway 中,每個 REST API 都可以有多個階段。階段的用意是為協助 API 的開發生命週期,例如,在您建置 API 之後,將它們部署到開發階段,或是當您準備好進入生產時,可以將它們部署到生產階段。

問:什麼是階段?

在 Amazon API Gateway 中,階段類似於標籤。階段可定義部署存取路徑。例如,您可以定義開發階段,將 cars API 部署到其中。此資源可從 https://www.myapi.com/dev/cars 存取。您也可以設定自訂網域名稱直接指向階段,這樣就不必另外使用路徑參數。例如,如果您將 myapi.com 直接指向開發階段,即可在 https://www.myapi.com/cars 存取 cars 資源。可使用能夠從 API 組態或映射範本存取的變數來設定階段。

問:什麼是階段變數?

階段變數讓您定義與階段關聯之組態值的鍵值/值組。這些值與環境變數類似,可在 API 組態中使用。例如,您可以定義方法整合的 HTTP 端點作為階段變數,並在 API 組態使用變數而非以硬編碼方式編寫端點 – 這可讓您在使用相同 API 組態的每個階段 (例如,dev、beta、prod) 使用不同的端點。階段變數也可以在映射範本中存取,並用於將設定參數傳遞到 Lambda 或 HTTP 後端。

問:什麼是資源政策?

資源政策是您連接到 API 的 JSON 政策文件,以控制指定的原則 (通常是 IAM 使用者或角色) 是否可叫用 API。您可以使用資源政策讓不同 AWS 帳戶的使用者安全地存取您的 API,或僅允許從指定的來源 IP 地址範圍或 CIDR 區塊叫用 API。Amazon API Gateway 中的 REST API 可搭配使用資源政策。

問:萬一我錯誤地部署到階段了呢?

Amazon API Gateway 會儲存部署的歷史記錄。您可以隨時使用 Amazon API Gateway API 或主控台,將階段復原到之前的部署。

問:我是否能使用自己的 Swagger API 定義?

是。您可以使用我們的開放原始碼 Swagger 匯入程式工具將自己的 Swagger API 定義匯入 Amazon API Gateway 中。利用 Swagger 匯入程式工具,您可以建立和部署新的 API,並能更新現有 API。

問:我的 API 如何在 API Gateway 中獲利?

若要在 API Gateway 從 API 獲利,您可以在 AWS Marketplace 中以產品的形式發行這些 API。首先,您需要在 AWS Marketplace 註冊為賣家,然後在 API Gateway 上以產品形式提交用量計劃。閱讀這裡以進一步了解 API 獲利。

問:如何在 Amazon API Gateway 上管理我的 API 文件?

API Gateway 可讓您建立、更新和刪除與 API 每個部分相關的文件,像是方法和資源。您可透過 AWS 開發套件、CLI、RESTful 呼叫來存取文件相關 API,或直接在 API Gateway 主控台中編輯文件字串。您也可將文件以 Swagger 檔案的形式與 API 一起或分開匯入,這能讓您在不影響 API 定義的情況下新增或更新文件。對於從 Swagger 檔案匯入或匯出的文件,API Gateway 會遵守開放 API 規格。API Gateway 中的 REST API 支援文件。

問:如何避免我的 API 中經常出現的錯誤訊息和其他文件的冗餘副本?

除了提供標準的遵守 API 文件支援,API Gateway 還支援文件繼承,您只要定義文件字串一次,就能在多個地方使用。繼承簡化了定義 API 文件的處理程序,而且當 API 匯出成 Swagger 檔案時,還能轉換成標準表示法。

問:是否可將私有 API 的存取權限制在特定 Amazon VPC 或 VPC 端點?

是,您可以在 API 套用資源政策,將存取權限制在特定 Amazon VPC 或 VPC 端點。您也可以使用資源政策,讓來自不同帳戶的 Amazon VPC 或 VPC 端點可以存取私有 API。

安全性和授權

問:如何授權對我的 API 的存取?

您可以使用 Amazon API Gateway 選擇性地設定 API 方法來要求授權。當您設定方法要求授權時,可以利用 AWS 簽章版本 4 或 Lambda 授權方支援自己的 bearer 字符授權策略。

問:AWS 簽章版本 4 如何運作?

您可以使用 AWS 登入資料 (存取金鑰和私密金鑰) 簽署對您服務的請求,並如同其他 AWS 服務般授權存取。Amazon API Gateway API 請求的簽章是由為您的服務產生的自訂 API Gateway SDK 所管理。您可以使用 Amazon Cognito 擷取與您的 AWS 帳戶角色關聯的臨時登入資料。

問:什麼是 Lambda 授權方?

Lambda 授權方是 AWS Lambda 函數。使用自訂請求授權程式,您將能夠使用 bearer 字符授權策略 (如 OAuth) 來授權 API 存取。當呼叫 API 的時候,API Gateway 會檢查是否已設定 Lambda 授權方,然後 API Gateway 會使用傳入的授權字符呼叫 Lambda 函數。您可以使用 Lambda 實作各種授權策略 (例如,JWT 驗證、OAuth 提供者呼叫),它們會傳回用來授權請求的 IAM 政策。如果授權程式傳回的政策是有效的,API Gateway 會快取與傳入字符關聯的政策,時間最長可達 1 小時。

問:Amazon API Gateway 是否可產生分發給第三方開發人員的 API 金鑰?

是。API Gateway 可產生 API 金鑰,並將它們與用量計劃建立關聯。從每個 API 金鑰接收的呼叫會加入 Amazon CloudWatch Logs 並加以監控,您可以為每個階段啟用此功能。不過,不建議您將 API 金鑰用於授權。您應該使用 API 金鑰來監控第三方開發人員的使用情況,並使用更強固的機制 (如已簽章的 API 呼叫或 OAuth) 來進行授權。

問:如何解決或防止 API 威脅或濫用?

API Gateway 支援針對 API 中的每個方法或路由制定調節設定。您可以為 REST API 中每個方法和 WebSocket API 中每個路由設定每秒的標準速率限制和高載速率限制。不僅如此,API Gateway 還可以自動保護您的後端系統,免受分散式拒絕服務 (DDoS) 的攻擊,無論是使用盜版要求 (Layer 7) 或 SYN 泛洪 (Layer 3) 的攻擊。

問:是否能確認是 API Gateway 呼叫我的後端?

是。Amazon API Gateway 可以產生用戶端 SSL 憑證,並提供該憑證的公開金鑰給您。產生的憑證可用於呼叫後端,而您可以使用憑證的公開金鑰確認呼叫來自 Amazon API Gateway。

問:AWS CloudTrail 是否可與 Amazon API Gateway 搭配使用?

是。Amazon API Gateway 已與 AWS CloudTrail 整合,為您提供對 REST API 所做變更的完整可稽核歷史記錄。對 Amazon API Gateway API 進行的建立、修改、刪除或部署 REST API 的所有 API 呼叫,都會記錄到 AWS 帳戶的 CloudTrail 中。

問:Amazon API Gateway 如何與 Amazon Virtual Private Cloud (Amazon VPC) 搭配使用?

在 Amazon API Gateway,您可以使用 VPC 連結設定私有整合,將請求傳送到在 Amazon VPC 執行的後端 HTTP/HTTPS 資源。Amazon API Gateway 中的用戶端 SSL 憑證可用於驗證,確認 API Gateway 使用憑證公開金鑰將請求傳送到後端系統。您也可以在 Amazon API Gateway 建立私有 API,只能由 Amazon VPC 內的資源透過 Amazon VPC 端點進行存取。

問:是否可將私有 API 的存取權限制在特定 Amazon VPC 或 VPC 端點?

是,您可以在 API 套用資源政策,將存取權限制在特定 Amazon VPC 或 VPC 端點。您也可以使用資源政策,讓來自不同帳戶的 Amazon VPC 或 VPC 端點可以存取私有 API。

問:可以在 API Gateway 中設定 REST API 使用 TLS 1.1 或更高版本嗎?

如果您正在使用 REST API,您可以在帳戶中使用自訂 SSL 憑證來設定 CloudFront 分佈,並在 API Gateway 中搭配區域 API 使用。接著您可以根據安全與合規要求來使用 TLS 1.1 或更高版本來為 CloudFront 分佈設置安全政策

管理、指標和記錄

問:如何監控我的 Amazon API Gateway API?

Amazon API Gateway 會將 API 呼叫、延遲和錯誤率記錄到您 AWS 帳戶的 Amazon CloudWatch 中。透過 REST API 儀表板中的 Amazon API Gateway 主控台也可以使用這些指標。API Gateway 也會測量第三方開發人員的使用率,在 API Gateway 主控台及透過 API 可使用此資料。

問:可以在 Amazon API Gateway 指標上設定警示嗎?

可以,Amazon API Gateway 會將記錄資訊和指標傳送到 Amazon CloudWatch。您可以使用 Amazon CloudWatch 主控台設定自訂警示。

問:如何設定 Amazon API Gateway 的指標?

預設情況下,Amazon API Gateway 會監控 REST API 層級的流量。您可以從部署設定 API 或主控台畫面,選擇性地為 REST API 中的每個方法啟用詳細的指標。詳細指標也會記錄到 Amazon CloudWatch,而且以 CloudWatch 費率收費。

問:是否可判斷客戶使用的 API 版本?

是。指標詳細資訊是由 REST API 和階段指定。此外,您也可以為 REST API 內的每個方法啟用指標。

問:Amazon API Gateway 是否提供記錄支援?

是。Amazon API Gateway 已與 Amazon CloudWatch Logs 整合。您可以選擇性為 API 中的每個階段啟用記錄。對於 REST API 中的每個方法,您可以設定記錄的詳細資訊,如果是完整要求和回應資料,必須記錄。

問:日誌多快可以提供使用?

日誌、警示、錯誤率及其他指標儲存在 Amazon CloudWatch 中,幾乎可以立即使用。

調節和快取

問:如何保護後端系統與應用程式的流量高峰需求?

Amazon API Gateway 在多個層級 (包括全域) 且依照服務呼叫提供調節。調節限制可以設定標準速率和高載速率。例如,API 擁有者可以為 REST API 中的特定方法設定每秒 1,000 個請求的速率限制,也可以設定 Amazon API Gateway 只處理幾秒鐘的每秒 2,000 個請求的高載速率。Amazon API Gateway 會追蹤每秒的請求數量。超過限制的任何請求會收到一個 429 HTTP 回應。 Amazon API Gateway 產生的用戶端 SDK (Javascript 除外) 收到這個回應時,會自動重試呼叫。

問:是否可以調節個別開發人員呼叫我的 API?

是。有了用量計劃,您可為個別 API 金鑰設定調節限制。

問:調節對我有何幫助?

調節可確保 API 流量受到控制,讓後端服務可以保持效能及可用性。

問:Amazon API Gateway 可以在哪些層級針對傳入 API 流量實施調節?

調節速率限制可在方法層級設定。您可以透過 Amazon API Gateway API 或在 Amazon API Gateway 主控台中,編輯方法設定中的調節限制。

問:如何套用調節規則?

會按以下順序套用 API 閘道調節相關設定:1) 您在使用計劃中針對 API 設定的依用戶端依方法調節限制,2) 您在使用計劃中設定的依用戶端調節限制 3) 您在 API 階段設定中設定的預設依方法限制和個別依方法限制 4) 依區域的帳戶層級調節。

問:Amazon API Gateway 是否提供 API 結果快取?

是。佈建 API Gateway 快取並指定其大小 (以 GB 為單位),即可將快取新增到 API 呼叫。快取是針對 API 的特定階段進行佈建。這可提高效能,並降低傳送到後端的流量。快取設定可讓您控制快取索引鍵的建置方法,以及每個方法所儲存資料的存活期 (TTL)。API Gateway 也會公開管理 API,協助您讓每個階段的快取失效。API Gateway 中的 REST API 可使用快取。

問:如果大量最終使用者同時嘗試叫用我的 API,會發生什麼狀況?

如果沒有啟用快取且沒有套用調節限制,則在達到帳戶層級調節限制之前,所有請求都會傳送到後端服務。如果已設定調節限制,那麼 Amazon API Gateway 會削減必要的請求數量,只傳送定義的限制數量到後端服務。如果已設定快取,那麼 Amazon API Gateway 會在可自訂的時間內為重複要求傳回已快取的回應,但是只在低於設定的調節限制時。後端與用戶端之間的這種平衡,可確保 API 為所支援的應用程式提供最佳效能。Amazon API Gateway 產生的用戶端 SDK 會自動重試受到調節的請求。預設情況下,Amazon API Gateway 並不會在您的 API 方法上設定任何快取。

問:API 如何擴展?

Amazon API Gateway 的用途是做為已設定之後端操作的 Proxy。Amazon API Gateway 會自動擴展以處理 API 收到的流量。Amazon API Gateway 不會任意限制或調節對後端操作的叫用,而且未被 Amazon API Gateway 主控台中調節和快取設定攔截的所有請求,都會傳送到後端操作。

計費

問:使用 Amazon API Gateway 如何計費?

Amazon API Gateway 以每百萬個 API 呼叫計費,再加上傳出資料量 (以 GB 為單位) 的費用。如果您選擇為 API 佈建快取,則會套用小時費率。對於 WebSocket API,API Gateway 會根據傳送和接收的訊息以及客戶端連線到 API 的分鐘數計費。請參閱 API Gateway 定價頁面,了解各區域 API 呼叫、資料傳輸和快取費用的詳細資訊。

問:第三方開發人員產生的 Amazon API Gateway API 呼叫費用由誰支付?

API 擁有者需支付在 API Gateway 上呼叫他們 API 的費用。

問:如果 API 回應是由已快取的資料提供服務,仍然需要支付 API 呼叫的費用嗎?

是。為了公平計費,無論回應是由後端操作處理或由 Amazon API Gateway 快取操作處理,都計入 Amazon API 呼叫。

WebSocket API

問:Amazon API Gateway 中的 WebSocket 路由是什麼?

Amazon API Gateway 中的 WebSocket 路由是用於將訊息中心正確地路由到特定整合。您可以在定義 WebSocket API 時指定要呼叫的路由索引鍵和整合後端。路由索引鍵是訊息內文中的一個屬性。也可以為不相符的路由索引鍵設定預設整合。如需進一步了解,請參閱我們的文件

問:如何從後端服務傳送訊息到連接的用戶端?

當新用戶端連接到 WebSocket API 時,會為該用戶端建立一個唯一 URL,稱為「回呼 URL」。您可以使用此回呼 URL 從後端服務傳送訊息到連接的用戶端。

問:如何授權對 Amazon API Gateway 中 WebSocket API 的存取?

使用 Amazon API Gateway,您可以使用 IAM 角色和政策或 AWS Lambda 授權方,來授權對您的 WebSocket API 的存取。

問:當用戶端與 Amazon API Gateway 中的 WebSocket 連線或中斷連線時,我的後端服務如何知道?

當用戶端連線或斷線時,系統會使用 $connect 和 $disconnect 路由,從 Amazon API Gateway 服務傳送一個訊息到您的後端 AWS Lambda 功能或您的 HTTP 端點。您可以採取適當的動作,例如在已連接使用者清單中新增或移除用戶端。

問:我的後端服務如何識別用戶端與 WebSocket 仍在連線中?

您可以對連線使用回呼 URL GET 方法,找出用戶端是否與 WebSocket 連線。有關回呼 URL,請參閱文件。

問:我可以從我的後端服務中斷與用戶端的連線嗎?

是,您可以使用回呼 URL 從您的後端服務中斷已連接的用戶端。

問:WebSocket API 支援的訊息大小上限為何?

支援的訊息大小上限是 128 KB。請參閱文件了解 WebSocket API 的其他限制。

問:在 Amazon API Gateway 上使用 WebSocket API 如何計費?

會根據 2 項指標向您收費:連線分鐘數和訊息。

連線分鐘數:用戶端或裝置連線到 WebSocket 連線的總分鐘數 (四捨五入到一分鐘)。

訊息:傳送到連接用戶端和連接用戶端接收的訊息總數。訊息以 32 KB 增量計費。如需 WebSocket API 定價和範例的詳細資訊,請參閱定價頁面

問:如果 WebSocket 連線的訊息身份驗證或授權失敗,還會算入我的 API 用量帳單中嗎?

不,如果 WebSocket 連線的訊息身份驗證或授權失敗,不會算入您的 API 用量帳單。

進一步了解 Amazon API Gateway

瀏覽定價頁面
準備好開始使用了嗎?
註冊
還有其他問題嗎?
聯絡我們