本文指導您如何使用API網關訪問VPC內部的后端服務API,并詳細說明如何運用阿里云APP認證中的AppCode來實現安全調用。
前提條件
創建VPC環境,可參見搭建IPv4專有網絡和搭建IPv6專有網絡。
創建ECS服務器,可參見創建ECS實例。
購買VPC環境的SLB、ECS,并搭建服務。
本例API網關的后端服務選擇的是專有網絡VPC的ECS實例,ECS中部署了Web服務,使用的是Nginx,端口使用的是80端口。
配置流程
使用API網關訪問VPC內部的后端服務API,具體配置流程如下:
創建VPC授權
如果您想讓API網關能夠訪問VPC,則需要創建VPC授權。
登錄API網關控制臺,選擇地域并在左側導航欄選擇API管理 > VPC授權。
在授權列表頁面,單擊右上角創建授權。
在創建VPC授權頁面,輸入VPC授權名稱、VPC Id、實例Id或地址、端口號。
說明若需要指定域名來訪問SLB或ECS上的站點(vhost),可將域名配置到Host。
VPC Id、實例ID或私網地址可在后端服務(ECS、CLB等)實例詳情中可以找到。
ALB網絡類型必須為私網類型,并且創建后不可修改為公網類型,修改為公網類型后引起的網關請求失敗,后果需自行承擔。
創建分組
API分組是API的管理單元,因此需要先創建API分組,然后在分組下創建API。
登錄API網關控制臺,選擇地域并在左側導航欄選擇API管理 > 分組管理,單擊右上角創建分組。
在創建分組彈框頁面,選擇實例,輸入分組名稱為
nginx-demo
,BasePath為/
,單擊確定。
在分組列表查看創建的分組,點擊分組名稱可以進入到分組詳情頁,進行綁定域名、修改基本信息、變更分組實例等操作。
API分組會自動分配公網二級域名,此二級域名僅供調試使用,如果直接訪問此域名,每天有1000次的限制(海外Region及中國香港限制100次/天)。因此建議為分組綁定自己的獨立域名后使用。
創建API
登錄API網關控制臺,選擇地域并在左側導航欄選擇API管理 > 分組管理。
在分組列表頁面下,單擊所創建的
nginx-demo
分組操作列下的API管理。在API列表頁面,單擊右上角創建API。
在創建API頁面的基本信息欄,配置如下信息,單擊下一步。
配置項
示例值
分組
nginx-demo
API名稱
nginx-test
安全認證
阿里云APP
AppCode認證
允許APPcode(header&Query)認證
簽名算法
HMAC_SHA256
在定義API請求欄,配置如下信息,單擊下一步。
配置項
示例值
協議
HTTP,HTTPS。
請求Path
/nginx
HTTP Method
GET
入參請求模式
入參透傳
說明定義client端(如瀏覽器、手機APP或其他的業務系統)如何請求您的API,需要確定的內容包括請求協議、請求Path、HTTP Method、入參請求模式、和入參定義。在本例中,入參請求方式選擇入參透傳,表示客戶端發送過來的參數API網關不做處理,直接透傳給后端VPC。
在定義API后端服務欄,配置如下信息,單擊下一步。
配置項
示例值
后端配置
選擇自定義后端服務
后端服務類型
選擇VPC
VPC授權名稱
***-microservice
后端請求Path
/
HTTP Method
GET
后端超時
10000
說明本步驟是定義API網關收到client端的請求后,如何參數映射以及連接哪個后端地址。本例中的后端服務類型選擇VPC,選擇前面步驟中創建的VPC授權或手動輸入VPC授權名稱,然后填寫后端請求path。
在定義返回結果欄,單擊創建。
說明本步驟用于API幫助文檔的自助生成,幫助API使用者更好地理解。可以設置返回ContentType、返回結果示例和失敗返回結果示例。本例中不涉及到這部分,因此可以點擊創建按鈕。
在創建成功之后彈框中單擊發布。
在發布彈框中發布的環境選擇線上,輸入請填寫變更備注,單擊發布。
說明對API進行過修改后,都需要發布到對應的環境(API網關內置了三個環境:"線上"、"預發"、"測試")中,新配置才能生效。
創建應用和API授權
應用(APP)是調用API服務時的身份。在本例創建API時,認證方式選擇的是“阿里云APP認證”,因此在API發布后,還需要創建APP,并將APP和API的對應關系建立好,才能夠正常訪問。
創建應用
登錄API網關控制臺,選擇地域并在左側導航欄選擇API調用 > 應用管理。
在應用與授權頁面,單擊右上角創建APP。
在創建應用頁面,輸入應用名稱,單擊確定。
在應用與授權頁面,單擊已創建好的應用名稱,進入應用詳情頁面,可以看到阿里云APP下有兩種認證方式,AppKey和AppCode。本例中我們選擇使用APPCode的方式進行簡單認證。關于阿里云APP的更多描述可見此文檔使用簡單認證(AppCode)方式調用API。
對API進行授權
登錄API網關控制臺,選擇地域并在左側導航欄選擇API管理 > API列表。
在API列表頁面,找到已創建好的
nginx-test
API,單擊操作列> 授權。在授權頁面,選擇選擇要授權的環境為線上。搜索之前創建的應用,單擊添加并確定,提示授權成功,即成功授權。
安全組放行網關出口地址
若您的ECS安全組沒有對相應的端口放行所有網段,那么就需要您在安全組中放行API網關的出口地址,避免安全組攔截。 網關的出口IP為API分組所在的實例的出口地址。
調試API
API網關提供了在線調試的功能,因此建議在API網關上完成API配置之后,可以先通過此功能確認API是否配置成功,然后再通過client端進行調用。
登錄API網關控制臺,在左側導航欄選擇API調用 > 調式。
在調試頁面選擇,所創建的
nginx-test
API,驗證方式選擇使用AppCode,然后單擊發送請求,即可看到如下圖信息說明配置成功。
調用API
可參考文檔客戶端調用API。
如果域名沒有指定環境,調用API時,默認是調用線上環境的API。關于API環境,詳情可參考環境管理。
本文主要的目的是快速入門,并未考慮后端的高可用,若您有需求可參考使用VPC內資源作為API的后端服務。