教學:建立具私有整合的 REST API
您可以建立具有私有整合的 API Gateway API,讓您的客戶能夠在 Amazon Virtual Private Cloud (Amazon VPC)內存取 HTTP/HTTPS 資源。這種 VPC 資源是 VPC 中,Network Load Balancer 後方之 EC2 執行個體上的 HTTP/HTTPS 端點。Network Load Balancer 會封裝 VPC 資源,並將傳入請求路由到目標資源。
當用戶端呼叫 API 時,API Gateway 會透過預先設定的 VPC 連結連線到 Network Load Balancer。VPC 連結由 VpcLink 的 API Gateway 資源封裝。它負責將 API 方法請求轉送到 VPC 資源,再將後端回應傳回給發起人。對於 API 開發人員而言,VpcLink 功能等同於整合端點。
若要建立具有私有整合的 API,您必須建立新的 VpcLink,或選擇已連線到 Network Load Balancer 的現有 ,且該 Network Load Balancer 是以所需的 VPC 資源為目標。您必須擁有適當的許可,才能建立和管理 VpcLink。然後,您要設定 API 方法,將 VpcLink 或 HTTP 設定為整合類型、將 HTTP_PROXY 設定為整合連線類型,並設定整合 VPC_LINK 上的 VpcLink 識別符,整合此方法與 connectionId。
注意
Network Load Balancer 和 API 必須由相同的 AWS 帳戶擁有。
為快速開始建立 API 以存取 VPC 資源,我們會使用 API Gateway 主控台逐步介紹建立具有私有整合 API 的重要步驟。建立 API 之前,請執行下列操作:
-
建立 VPC 資源,在同區域的您的帳戶下建立或選擇 Network Load Balancer,然後新增 EC2 執行個體,將資源裝載為 Network Load Balancer 的目標。如需更多詳細資訊,請參閱 設定 API Gateway 私有整合的 Network Load Balancer。
-
授予建立私有整合 VPC 連結的許可。如需更多詳細資訊,請參閱 授予 API Gateway 建立 VPC 連結的許可權。
使用在目標群組中設定的 VPC 資源建立您的 VPC 資源和 Network Load Balancer 之後,請依下列說明來建立 API,並在私有整合中透過 VpcLink 整合它與 VPC 資源。
建立具有私有整合的 API
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 -
如果這是您第一次使用 API Gateway,您會看到服務功能的介紹頁面。在 REST API 下方,選擇 Build (組建)。當 Create Example API (建立範例 API) 快顯出現時,選擇 OK (確定)。
如果這不是第一次使用 API Gateway,請選擇 Create API (建立 API)。在 REST API 下方,選擇組建。
-
建立邊緣最佳化或區域性的 REST API。針對 IP 位址類型,使用 IPv4。
-
選取您的 API。
-
選擇建立方法,然後執行下列動作:
針對方法類型,選取
GET。針對整合類型,選取 VPC 連結。
開啟 VPC 代理整合。
針對 HTTP 方法,選取
GET。針對 VPC 連結,選取 [使用階段變數],然後在下面的文字方塊中輸入
${stageVariables.vpcLinkId}。在將 API 部署到階段後定義
vpcLinkId階段變數,並將其值設定為VpcLink的 ID。針對端點 URL 輸入 URL,例如
http://myApi.example.com。URL 必須是有效的頂層網域,且主機名稱 (例如
myApi.example.com) 會用來設定整合請求的Host標頭。選擇建立方法。
使用代理整合,API 已備妥可供部署。否則,您需要繼續設定適當的方法回應和整合回應。
選擇部署 API,然後執行下列操作:
針對階段,選取新階段。
針對階段名稱,輸入階段名稱。
在描述,請輸入描述。
選擇部署。
-
在階段詳細資訊區段下,記下產生的叫用 URL。您需要它來呼叫 API。執行這項操作之前,您必須設定
vpcLinkId階段變數。 -
在階段窗格中,選擇階段變數標籤,然後執行下列動作:
選擇管理變數,然後選擇新增階段變數。
-
對於名稱,輸入
vpcLinkId。 -
針對值,輸入
VPC_LINK的 ID,例如。gix6s7 -
選擇儲存。
使用階段變數,您可以透過變更階段變數值,輕鬆切換到 API 的不同 VPC 連結。