全部產品
Search
文件中心

API Gateway:通過API Gateway訪問VPC內部的後端服務

更新時間:Aug 17, 2024

本文指導您如何使用API Gateway訪問VPC內部的後端服務API,並詳細說明如何運用阿里雲APP認證中的AppCode來實現安全調用。

前提條件

說明
  • 購買VPC環境的SLB、ECS,並搭建服務。

  • 本例API Gateway的後端服務選擇的是Virtual Private Cloud的ECS執行個體,ECS中部署了Web服務,使用的是Nginx,連接埠使用的是80連接埠。

配置流程

使用API Gateway訪問VPC內部的後端服務API,具體配置流程如下:

建立VPC授權

如果您想讓API Gateway能夠訪問VPC,則需要建立VPC授權。

  1. 登入API Gateway控制台,選擇地區並在左側導覽列選擇API管理 > VPC授權

  2. 授權列表頁面,單擊右上方建立授權

  3. 建立VPC授權頁面,輸入VPC授權名稱VPC Id執行個體Id或地址連接埠號碼

    image

    說明
    • 若需要指定網域名稱來訪問SLB或ECS上的網站(vhost),可將網域名稱配置到Host。

    • VPC Id、執行個體ID或私網地址可在後端服務(ECS、CLB等)執行個體詳情中可以找到。

重要

ALB網路類型必須為私網類型,並且建立後不可修改為公網類型,修改為公網類型後引起的網關請求失敗,後果需自行承擔。

建立分組

API分組是API的嵌入式管理單元,因此需要先建立API分組,然後在分組下建立API。

  1. 登入API Gateway控制台,選擇地區並在左側導覽列選擇API管理 > 分組管理,單擊右上方建立分組

  2. 建立分組彈框頁面,選擇執行個體,輸入分組名稱nginx-demoBasePath/,單擊確定

    image

說明
  • 分組列表查看建立的分組,點擊分組名稱可以進入到分組詳情頁,進行綁定網域名稱修改基本資料變更分組執行個體等操作。

  • API分組會自動分配公網次層網域,此次層網域僅供調試使用,如果直接存取此網域名稱,每天有1000次的限制(海外Region及中國香港限制100次/天)。因此建議為分組綁定自己的獨立網域名稱後使用。

建立API

  1. 登入API Gateway控制台,選擇地區並在左側導覽列選擇API管理 > 分組管理

  2. 分組列表頁面下,單擊所建立的nginx-demo分組操作列下的API管理

  3. API列表頁面,單擊右上方建立API

  4. 建立API頁面的基本資料欄,配置如下資訊,單擊下一步

    配置項

    樣本值

    分組

    nginx-demo

    API名稱

    nginx-test

    安全認

    阿里雲APP

    AppCode認證

    允許APPcode(header&Query)認證

    簽名演算法

    HMAC_SHA256

    image

  5. 定義API請求欄,配置如下資訊,單擊下一步

    配置項

    樣本值

    協議

    HTTP,HTTPS。

    請求Path

    /nginx

    HTTP Method

    GET

    入參請求模式

    入參透傳

    image

    說明

    定義client端(如瀏覽器、手機APP或其他的業務系統)如何請求您的API,需要確定的內容包括請求協議、請求Path、HTTP Method、入參請求模式、和入參定義。在本例中,入參請求方式選擇入參透傳,表示用戶端發送過來的參數API Gateway不做處理,直接透傳給後端VPC。

  6. 定義API後端服務欄,配置如下資訊,單擊下一步

    配置項

    樣本值

    後端配置

    選擇自訂後端服務

    後端服務類型

    選擇VPC

    VPC授權名稱

    ***-microservice

    後端請求Path

    /

    HTTP Method

    GET

    後端逾時

    10000

    image

    說明

    本步驟是定義API Gateway收到client端的請求後,如何參數映射以及串連哪個後端地址。本例中的後端服務類型選擇VPC,選擇前面步驟中建立的VPC授權或手動輸入VPC授權名稱,然後填寫後端請求path。

  7. 定義返回結果欄,單擊建立

    image

    說明

    本步驟用於API協助文檔的自助產生,協助API使用者更好地理解。可以設定返回ContentType、返回結果樣本和失敗返回結果樣本。本例中不涉及到這部分,因此可以點擊建立按鈕。

  8. 在建立成功之後彈框中單擊發布

    image

  9. 在發布彈框中發布的環境選擇線上,輸入請填寫變更備忘,單擊發布

    image

    說明

    對API進行過修改後,都需要發布到對應的環境(API Gateway內建了三個環境:"線上"、"預發"、"測試")中,新配置才會生效。

建立應用和API授權

應用(APP)是調用API服務時的身份。在本例建立API時,認證方式選擇的是“阿里雲APP認證”,因此在API發布後,還需要建立APP,並將APP和API的對應關係建立好,才能夠正常訪問。

建立應用

  1. 登入API Gateway控制台,選擇地區並在左側導覽列選擇API調用 > 應用管理

  2. 應用與授權頁面,單擊右上方建立APP

  3. 建立應用頁面,輸入應用程式名稱,單擊確定

    image

  4. 應用與授權頁面,單擊已建立好的應用程式名稱,進入應用詳情頁面,可以看到阿里雲APP下有兩種認證方式,AppKey和AppCode。本例中我們選擇使用APPCode的方式進行簡單認證。關於阿里雲APP的更多描述可見此文檔使用簡單認證(AppCode)方式調用API

    建立應用

對API進行授權

  1. 登入API Gateway控制台,選擇地區並在左側導覽列選擇API管理 > API列表

  2. 在API列表頁面,找到已建立好的nginx-testAPI,單擊操作image> 授權

  3. 在授權頁面,選擇選擇要授權的環境線上。搜尋之前建立的應用,單擊添加確定,提示授權成功,即成功授權。

    授權

安全性群組允許存取網關出口地址

若您的ECS安全性群組沒有對相應的連接埠允許存取所有網段,那麼就需要您在安全性群組中允許存取API Gateway的出口地址,避免安全性群組攔截。 網關的出口IP為API分組所在的執行個體的出口地址。

  1. 登入API Gateway控制台,在左側導覽列選擇API管理 > 分組管理,在分組列表頁面,單擊所建立的目標API分組名稱。

  2. 分組詳情頁面,查看分組所在的執行個體類型

  3. 在左側導覽列選擇執行個體與叢集,單擊執行個體類型,找到對應執行個體查看到出口地址資訊。

    image

  4. 登入ECS控制台,在左側導覽列選擇執行個體與鏡像 > 執行個體 。單擊所建立的ECS執行個體,進入詳情頁面,選擇安全性群組欄,單擊安全性群組名稱,在安全性群組詳情頁面,選擇入方向 > 快速添加,配置網關的出口地址。

    image

調試API

API Gateway提供了線上調試的功能,因此建議在API Gateway上完成API配置之後,可以先通過此功能確認API是否配置成功,然後再通過client端進行調用。

  1. 登入API Gateway控制台,在左側導覽列選擇API調用 > 調式

  2. 在調試頁面選擇,所建立的nginx-testAPI,驗證方式選擇使用AppCode,然後單擊發送請求,即可看到如下圖資訊說明配置成功。

    image

調用API

可參考文檔用戶端調用API

說明
  • 如果網域名稱沒有指定環境,調用API時,預設是調用線上環境的API。關於API環境,詳情可參考環境管理

  • 本文主要的目的是快速入門,並未考慮後端的高可用,若您有需求可參考使用VPC內資源作為API的後端服務