API Gateway 入門 - Amazon API Gateway

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

API Gateway 入門

在此入門練習中,您將建立一個無伺服器 API。無伺服器 API 讓您能夠專注於應用程式,而不必花時間佈建和管理伺服器。此練習需要不到 20 分鐘的時間即可完成,而且可以包含在 AWS 免費方案中。

首先,您可以使用 AWS Lambda 主控台建立 Lambda 函數。接著,您可以使用 API Gateway 主控台建立 HTTP API。然後,您將叫用 API。

注意

本練習使用 HTTP API。API Gateway 也支援 REST API,其中包含更多功能。如需使用 REST API 的教學課程,請參閱REST API 主控台入門

如需 HTTP API 和其他 API 之間差異的詳細資訊,請參閱在 REST API 與 HTTP API 之間進行選擇

在您叫用 HTTP API 時,API Gateway 會將請求路由至您的 Lambda 函數。Lambda 會執行 Lambda 函數,並傳回 API Gateway 的回應。API Gateway 隨後將回應傳回給您。

您在本教學課程中建立的 HTTP API 概觀。

要完成這個練習,您需要一個 AWS 帳戶和一個具有控制台訪問權限的 AWS Identity and Access Management 用戶。如需詳細資訊,請參閱 開始使用 API Gateway 的必要條件

步驟 1:建立 Lambda 函數

您將使用 Lambda 函數作為您的 API 的後端。Lambda 只有在需要時才會執行程式碼,可自動從每天數項請求擴展成每秒數千項請求。

在此範例中,您將從 Lambda 主控台使用預設 Node.js 函數。

建立 Lambda 函數
  1. 在以下網址登入 Lambda 主控台:https://console.aws.amazon.com/lambda

  2. 選擇 Create function (建立函數)。

  3. 針對 Function name (函數名稱),請輸入 my-function

  4. 選擇 Create function (建立函數)。

範例函數將 200 回應傳回給用戶端,以及文字 Hello from Lambda!

您可以修改您的 Lambda 函數,函數的回應與 API Gateway 要求的格式要相符。

預設 Lambda 函數程式碼看起來與下面所示類似:

export const handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };

步驟 2:建立 HTTP API

接著,您將建立一個 HTTP API。API Gateway 也支援 REST WebSocket API 和 API,但 HTTP API 是本練習的最佳選擇。REST API 支援比 HTTP API 更多的功能,但本練習中不需要那些功能。HTTP API 的設計具有最少的功能,因此可以以較低的價格提供它們。 WebSocket API 會維持與用戶端的持續連線,以進行全雙工通訊,此範例並不需要這樣做。

HTTP API 將針對您的 Lambda 函數提供 HTTP 端點。API Gateway 會將請求路由至您的 Lambda 函數,然後將函數的回應傳回給用戶端。

建立 HTTP API
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 請執行下列其中一項:

    • 若要建立您的第一個 API,針對 HTTP API,選擇 Build (建置)。

    • 如果您之前已建立 API,則選擇 Create API (建立 API),然後針對 HTTP API 選擇 Build (建置)。

  3. 針對 Integrations (整合),選擇 Add integration (新增整合)。

  4. 選擇 Lambda

  5. 對於 Lambda function (Lambda 函數),請輸入 my-function

  6. 針對 API name (API 名稱),請輸入 my-http-api

  7. 選擇 Next (下一步)。

  8. 檢閱 API Gateway 為您建立的 route (路由),然後選擇 Next (下一步)。

  9. 檢閱 API Gateway 為您建立的 stage (階段),然後選擇 Next (下一步)。

  10. 選擇 Create (建立)。

現在,您已建立具有 Lambda 整合的 HTTP API,可隨時接收來自用戶端的請求。

步驟 3:測試您的 API

接著,您將測試您的 API 以確保其正常工作。為簡單起見,請使用 Web 瀏覽器來叫用您的 API。

測試您的 API
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. 選擇您的 API。

  3. 請注意 API 的叫用 URL。

    在建立 API 之後,主控台會顯示 API 的叫用 URL。
  4. 複製 API 的叫用 URL,然後在 Web 瀏覽器中輸入。將 Lambda 函數的名稱附加至叫用 URL,以叫用 Lambda 函數。依預設,API Gateway 主控台會建立與 Lambda 函數相同名稱的路由 my-function

    完整 URL 看起來應該會像這樣:https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function

    您的瀏覽器將向 API 傳送 GET 請求。

  5. 驗證您的 API 的回應。您應該會在瀏覽器中看到文字 "Hello from Lambda!"

(選用) 步驟 4:清除

若要避免不必要的成本,請刪除您在此入門練習中建立的資源。採用下列步驟刪除您的 HTTP API、您的 Lambda 函數和相關資源。

刪除 HTTP API
  1. 在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway

  2. API 頁面上,選取 API。選擇 Actions (動作),然後選擇 Delete (刪除)。

  3. 選擇 Delete (刪除)。

刪除 Lambda 函數
  1. 在以下網址登入 Lambda 主控台:https://console.aws.amazon.com/lambda

  2. Functions (函數) 頁面上,選取函數。選擇 Actions (動作),然後選擇 Delete (刪除)。

  3. 選擇 Delete (刪除)。

刪除 Lambda 函數的日誌群組
  1. 在 Amazon 主 CloudWatch 控台中,開啟日誌群組頁面

  2. Log groups (日誌群組) 頁面上,選取函數的日誌群組 (/aws/lambda/my-function)。選擇 Actions (動作),然後選擇 Delete log group (刪除日誌群組)。

  3. 選擇 Delete (刪除)。

刪除 Lambda 函數的執行角色
  1. 在 AWS Identity and Access Management 主控台中,開啟 [角色] 頁面

  2. 選取函數的角色,例如,my-function-31exxmpl

  3. 選擇 Delete role (刪除角色)。

  4. 選擇 Yes, delete (是,刪除)。

您可以使用 AWS CloudFormation 或來自動建立和清理 AWS 資源 AWS SAM。如需 AWS CloudFormation 範本範例,請參閱範例 AWS CloudFormation 範本

後續步驟

在此範例中,您使 AWS Management Console 用建立簡單的 HTTP API。HTTP API 叫用 Lambda 函數,並將回應傳回給用戶端。

以下是繼續使用 API Gateway 的後續步驟。

若要從社群取得 Amazon API Gateway 的相關協助,請參閱 API Gateway 開發論壇。當您進入這個討論區時, AWS 可能會要求您登入。

若要直接從取得 API Gateway 的說明 AWS,請參閱「Support」頁面上的AWS 支援選項。

另請參閱常見問答集 (FAQ),或直接聯絡我們