本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:建立具有私有整合功能的 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 連結由的 API Gateway 資源封裝。VpcLink它負責將 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閘道私有整合設定 Network Load Balancer。
-
授予建立私有整合 VPC 連結的許可。如需更多詳細資訊,請參閱 授與API閘道建立連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。
-
選取您的 API。
-
選擇建立方法,然後執行下列動作:
針對方法類型,選取
GET
。針對整合類型,選取 VPC 連結。
開啟 VPC 代理整合。
針對 HTTP 方法,選取
GET
。針對 VPC 連結,選取 [使用階段變數],然後在下面的文字方塊中輸入
${stageVariables.vpcLinkId}
。在將 API 部署到階段後定義
vpcLinkId
階段變數,並將其值設定為VpcLink
的 ID。針對端點 URL 輸入 URL,例如
http://myApi.example.com
。在此,主機名稱 (例如,
myApi.example.com
) 是用來設定整合請求的Host
標頭。選擇建立方法。
使用代理整合,API 已備妥可供部署。否則,您需要繼續設定適當的方法回應和整合回應。
選擇部署 API,然後執行下列操作:
針對階段,選取新階段。
針對階段名稱,輸入階段名稱。
在描述,請輸入描述。
選擇部署。
-
在階段詳細資訊區段下,記下產生的叫用 URL。您需要它來呼叫 API。執行這項操作之前,您必須設定
vpcLinkId
階段變數。 -
在階段窗格中,選擇階段變數標籤,然後執行下列動作:
選擇管理變數,然後選擇新增階段變數。
-
針對名稱,輸入
vpcLinkId
。 -
針對值,輸入
VPC_LINK
的 ID,例如
。gix6s7
-
選擇儲存。
使用階段變數,您可以透過變更階段變數值,輕鬆切換到 API 的不同 VPC 連結。