全部產品
Search
文件中心

API Gateway:Function Compute內網訪問API Gateway

更新時間:Apr 15, 2025

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

概述

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實現,具體過程詳見 配置網路

情境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. 首先需要在vpc-api-access中再建立一個vswitch,用於Function Compute的接入。

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

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

    許可權配置中,需要新增一個角色,系統模板授權選擇AliyunECSNetworkInterfaceManagementAccess。

  7. 執行函數進行測試。

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

情境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。

使用限制

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