全部產品
Search
文件中心

API Gateway:Function Compute內網訪問API Gateway

更新時間:Jul 13, 2024

本文介紹在Function Compute中如何通過VPC訪問API Gateway,包括兩種情況:在同一Region,以及在跨Region情況下如何訪問。

1 概述

API Gateway即能夠和Function Compute整合,構建起serverless架構,同時在實際情境中,也會出現在函數中需要調用API Gateway上發布的API,同時很多時候出於安全考慮,往往會希望函數從內網能夠訪問API。因此本文著重介紹兩個情境的實現方式:

  • 在同一Region內,Function Compute如何內網訪問API Gateway

  • 跨Region情況下,Function Compute如何內網訪問API Gateway

無論是哪種情境,主要的配置原則如下:

  • 需要基於VPC實現內網訪問;

  • API Gateway的內網訪問,需要設定一個VPC允許API Gateway接入,具體過程詳見 VPC訪問API Gateway

  • Function Compute的內網訪問,也需要通過VPC實現,具體過程詳見 配置網路

2 情境1 同一Region內訪問

步驟1: 準備工作

構建如下圖所示的結構:

說明:

  • 在上海Region內建立2個VPC,分別為vpc-api-access和vpc-backend-1;

  • 在上海Region內建立了1個API Gateway專享執行個體;

  • 在vpc-backend-1中,建立一個ECS執行個體做為API Gateway的後端服務,此ECS執行個體提供了HTTP服務介面可對外訪問,且對外可以訪問的HTTP服務地址為 http://localhost:8080/web/cloudapi 。同時為此ECS執行個體也設定了對應的安全性群組,允許API Gateway的訪問。

步驟2:配置後端服務類型為VPC的API

此步驟的詳細過程可參見使用VPC內資源作為API的後端服務,配置要點如下:

  • 建立VPC授權,建立成功後如下圖所示:

  • 建立後端服務為VPC的API,為了方便後續的調用測試,API使用無認證方式,如下圖所示:

  • API儲存完後,需要進行發布,本例為了測試方便,發布到“線上”環境。

步驟3:配置VPC到API Gateway的內網存取權限

在專享執行個體頁面。點擊“入訪VPC”後的選擇VPC,選擇vpc-api-access的vpc id,表示可以通過vpc-api-access內網訪問到API Gateway。

步驟4:開通API分組的內網網域名稱

在分組詳情頁面,開通內網次層網域,點擊開通後,API Gateway會給分組分配一個內網VPC次層網域。該網域名稱可以直接調用該分組下的API。

注意:API分組預設開通互連網訪問,您可以根據業務情況通過關閉公網次層網域來停止互連網訪問,但注意禁止後,將不能通過API Gateway控制台進行線上調試。

步驟5:建立函數

在Function Compute中,建立應用,並建立運行環境為python的函數,函數內容如下所示:

函數中僅是使用curl去訪問VPC次層網域下的API,如果此時執行,將無法訪問。

步驟6:配置Function Compute的VPC訪問

首先需要在vpc-api-access中再建立一個vswitch,用於Function Compute的接入,如下圖所示:

其次在Function Compute控制台中,在上一步驟中建立應用的佈建服務菜單中進行配置,具體過程以Function Compute的文檔為準 配置網路

在專用網路配置中,專用網路選擇vpc-api-access,交換器選擇本步驟建立的vswitch。

許可權配置中,需要新增一個角色,系統模板授權選擇AliyunECSNetworkInterfaceManagementAccess,按控制台操作嚮導執行完後如下圖所示:

步驟7:執行函數進行測試

執行後可以看到Function Compute已經可以通過VPC次層網域訪問到API。

3 情境2 跨Region訪問

步驟1: 準備工作

構建如下圖所示的結構:

說明:

  • 張家口Region內,建立1個Function Compute應用,用於本例中發起API調用請求;建立1個VPC(vpc-fc-access),用於協助Function Compute接入雲企業網(CEN);

  • 上海Region內,1個API Gateway專享執行個體;同時1個VPC(vpc-api-access),用於協助API Gateway接入雲企業網(CEN);

  • 上海Region內,建立VPC(vpc-backend-1),並建立一個ECS執行個體做為API Gateway的後端服務,此ECS執行個體提供了HTTP服務介面可對外訪問,且對外可以訪問的HTTP服務地址為 http://localhost:8080/web/cloudapi 。同時為此ECS執行個體也設定了對應的安全性群組,允許API Gateway的訪問。

步驟2:建立雲企業網

首先建立一個雲企業網(CEN),打通上海VPC(vpc-api-access)和張家口的VPC(vpc-fc-access),實現內網互連。關於CEN的更多配置方式,請詳見雲企業網協助文檔 。先通過 雲企業網控制台 建立一個雲企業網執行個體,多次載入網路執行個體,將vpc-api-access,vpc-fc-access都添加到雲企業網中,完成後如下圖所示。

步驟3:配置頻寬

購買一個頻寬包,作為雲企業網內通訊需要。本例購買了一個最低的2M的頻寬,您可以根據實際需要按需購買。

配置跨地區頻寬設定,指定的互連地區配置頻寬值,還可以將1個頻寬包拆分到多個互連地區中。

步驟4:配置跨VPC路由

本步驟需要給CEN團隊提工單。注意按照 ResolveAndRouteServiceInCen 介面的參數說明,提供配置資訊。打通API Gateway和張家口VPC的互連。

AccessRegionIds.1=cn-zhangjiakou
AccessRegionIds.2=cn-shanghai
CenId=cen-uggzcthgz7cwsl7prr      #雲企業網的執行個體ID
Host=100.104.255.128/26                #通過API Gateway專享執行個體內網VPC出口地址
HostRegionId=cn-shanghai
HostVpcId=vpc-uf65amr4k3aepd0u4gnxa     #API Gateway在上海region,這個是vpc-api-access的VPCID                        

其中API Gateway專享執行個體接入內網VPC的出口地址,可以在執行個體管理中查詢到,如下圖所示

工單回複配置完成後,在雲企業網控制台查看配置的路由,能看到上海和張家口region都加了一些路由策略。而且都有一條自訂路由,是根據上面提供的資訊添加的。

步驟5:配置後端服務類型為VPC的API

情境1 中的 步驟2:配置後端服務類型為VPC的API。

步驟6:配置VPC到API Gateway的內網存取權限

情境1 中的 步驟3:配置VPC到API Gateway的內網存取權限。

步驟7:開通API分組的內網網域名稱

情境1 中的 步驟4:開通API分組的內網網域名稱。

步驟8:建立函數

在張家口Region的Function Compute中,建立應用,並建立運行環境為python的函數,函數內容如下所示:

步驟9:配置Function Compute的VPC訪問

情境1步驟6:配置Function Compute的VPC訪問類似,在vpc-fc-access中建立一個vswitch,然後在Function Compute控制台中的佈建服務菜單中進行配置。

步驟10:執行函數進行測試

執行後可以看到Function Compute已經可以通過VPC次層網域訪問到API。

4 使用限制

  • 僅限API Gateway專享執行個體。