教學:建立具私有整合的 REST API - Amazon API Gateway

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

教學:建立具私有整合的 REST API

在本教學課程中,您會建立 REST API,連線至在 Amazon VPC 中執行的 Amazon ECS 服務。不在您 Amazon VPC 上的客戶可以使用該 API 來存取您的 Amazon ECS 服務。

此教學課程需約 1 小時方能完成。首先,您使用 CloudFormation 範本來建立 Amazon VPC 和 Amazon ECS 服務。然後,您可以使用 API Gateway 主控台來建立 VPC 連結 V2。VPC 連結允許 API Gateway 存取在您 Amazon VPC 中執行的 Amazon ECS 服務。接著,您建立使用 VPC 連結 V2 連線至 Amazon ECS 服務的 REST API。最後,測試您的 API。

當您叫用 REST API 時,API Gateway 會透過 VPC 連結 V2 將請求路由到您的 Amazon ECS 服務,然後從服務傳回回應。

注意

此教學課程先前支援 HTTP APIs,現在支援使用 VPC 連結 V2 APIs。

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

若要完成本教學課程,您需要 AWS 帳戶和具有主控台存取權 AWS Identity and Access Management 的使用者。如需詳細資訊,請參閱設定為使用 API Gateway

步驟 1:建立 Amazon ECS 服務

Amazon ECS 是一種容器管理服務,可以在叢集上輕鬆執行、停止及管理 Docker 容器。在本教學課程中,您可以在 Amazon ECS 管理的無伺服器基礎設施上執行叢集。

下載並解壓縮此 CloudFormation 範本,這會建立服務的所有相依性,包括 Amazon VPC。您可以使用範本來建立使用 Application Load Balancer 的 Amazon ECS 服務。

建立 CloudFormation 堆疊
  1. 在 https://https://console.aws.amazon.com/cloudformation 開啟 CloudFormation 主控台。

  2. 選擇 Create stack (建立堆疊),然後選擇 With new resources (standard) (使用新資源 (標準))

  3. 對於 Specify template (指定範本),選擇 Upload a template file (上傳範本檔案)

  4. 選取您下載的範本。

  5. 選擇 Next (下一步)。

  6. 針對 Stack name (堆疊名稱),輸入 rest-api-private-integrations-tutorial,然後選擇 Next (下一步)

  7. 針對 Configure stack options (設定堆疊選項),選擇 Next (下一步)

  8. 針對 功能,確認 CloudFormation 可以在您的帳戶中建立 IAM 資源。

  9. 選擇下一步,然後選擇提交

CloudFormation 會佈建 ECS 服務,這可能需要幾分鐘的時間。當 CloudFormation 堆疊的狀態為 CREATE_COMPLETE 時,您就可以繼續進行下一個步驟。

VPC 連結允許 API Gateway 存取 Amazon VPC 中的私有資源。您可以使用 VPC 連結,允許用戶端透過 REST API 存取您的 Amazon ECS 服務。

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

  2. 在主要導覽窗格中,選擇 VPC 連結,然後選擇建立

    您可能需要選擇選單圖示,才能開啟主要導覽窗格。

  3. 針對選擇 VPC 連結版本,選取 VPC 連結 V2

  4. 針對 Name (名稱),輸入 private-integrations-tutorial

  5. VPC 欄位選擇您在步驟 1 建立的 VPC。名稱應以 RestApiStack 開頭。

  6. 對於 Subnets (子網路),請在您的 VPC 中選取兩個私有子網路。它們的名稱要以 PrivateSubnet 結尾。

  7. 對於安全群組,選取以 private-integrations-tutorial 開頭且描述為 RestApiStack/RestApiTutorialService/Service/SecurityGroup 的群組 ID。

  8. 選擇建立

建立 VPC 連結 V2 之後,API Gateway 會佈建彈性網路界面來存取 VPC。該程序需要幾分鐘的時間。同時,您可以創建您的 API。

步驟 3:建立 REST API

REST API 為您的 Amazon ECS 服務提供 HTTP 端點。

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

  2. 選擇 Create API (建立 API),然後針對 REST API,選擇 Build (建置)

  3. 對於名稱,輸入 private-integration-api

  4. 針對 IP 位址類型,選擇 IPv4

  5. 選擇建立 API

    建立 API 之後,您可以建立 方法。

  6. 選擇建立方法,然後執行下列動作:

    1. 針對方法類型,選取 GET

    2. 針對整合類型,選取 VPC 連結

    3. 開啟 VPC 代理整合

    4. 針對 HTTP 方法,選取 GET

    5. 針對 VPC 連結,選擇您在上一個步驟中建立的 VPC 連結 V2。

    6. 針對整合目標,輸入您在步驟 1 中使用範本建立的 CloudFormation 負載平衡器。其名稱應以 rest- 開頭。

    7. 針對端點 URL,輸入 http://private-integrations-tutorial.com

      URL 用於設定整合請求的Host標頭。在此情況下,主機標頭為 private-integrations-tutorial

    8. 選擇建立方法

      透過代理整合,API 已準備好進行測試。

步驟 4:測試您的 API

接著,您會測試叫用 API 方法。

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

  2. 選擇您的 API。

  3. 選擇測試標籤。您可能需要選擇向右箭頭按鈕才能顯示此索引標籤。

  4. 選擇測試

    確認 API 的回應是一則歡迎訊息,告知您應用程式正在 Amazon ECS 上執行。

步驟 5:部署 API

接著,部署您的 API。

部署 API
  1. 選擇部署 API

  2. 針對階段,選取新階段

  3. 針對階段名稱,輸入 Prod

  4. 描述,請輸入描述。

  5. 選擇部署

步驟 6:呼叫您的 API

部署 API 之後,您可以呼叫它。

呼叫您的 API
  1. 在 Web 瀏覽器中輸入調用 URL。

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

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

  2. 確認 API 的回應是一則歡迎訊息,告知您應用程式正在 Amazon ECS 上執行。

    如果您看到歡迎訊息,表示您已成功建立在 Amazon VPC 中執行的 Amazon ECS 服務,並使用 API Gateway REST API 搭配 VPC 連結 V2 來存取 Amazon ECS 服務。

步驟 7:清除

若要避免不必要的成本,請刪除您在此教學課程中建立的資源。下列步驟會刪除您的 VPC 連結 V2、 CloudFormation stack 和 REST API。

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

  2. API 頁面上,選取 API。依次選擇 Actions (動作)、Delete (刪除),然後確認您的選擇。

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

  2. 選擇 VPC link (VPC 連結)。

  3. 選取您的 VPC 連結、選擇 Delete (刪除),然後確認您的選擇。

刪除 CloudFormation 堆疊
  1. 在 https://https://console.aws.amazon.com/cloudformation 開啟 CloudFormation 主控台。

  2. 選取您的 CloudFormation 堆疊。

  3. 選擇刪除,然後確認您的選擇。