為了提供更安全、更可控的API訪問方式,您可以通過API Gateway來更好的管理和監控Function Compute服務,本文將快速引導您如何在API Gateway中對接Function ComputeFC3.0(Web函數),以及如何使用阿里雲APP認證中的AppCode進行調用。
前提條件
已建立API Gateway執行個體,關於執行個體的選型資訊,請參考執行個體類型與選擇指南。
方案概覽
本方案通過在Function Compute3.0中部署Web函數,在API Gateway中建立後端服務並指向Function Compute,使用阿里雲APP認證中的AppCode進行安全調用,協助您瞭解如何通過API Gateway控制對Function Compute服務的訪問。大致分為以下幾步:
建立Web函數:構建一個基於Function Compute3.0的Web應用程式。
建立後端服務:在API Gateway中定義一個指向Function Compute服務的後端服務,確保API請求能準確地轉寄給對應的Web函數,實現前後端的無縫整合。
建立API:使得外部應用能夠按照指定的方式調用內部的Web函數服務。
建立應用和API授權:建立API訪問的身分識別驗證機制,確保只有經過授權的應用才能調用特定的API,增強系統的安全性。
調試API:利用API Gateway提供的線上調試工具,可以在正式發布前測試API的功能是否按預期工作,及時發現並解決問題。
調用API:完成所有配置後,即可通過API Gateway提供的API介面對外提供服務,支援其他系統或應用調用。
步驟一:建立Web函數
在API Gateway對接Function Compute服務前,需要先在Function Compute服務中建立一個Web函數,協助您快速構建和部署Web應用,本文以Function Compute3.0為例。
登入Function Compute3.0控制台,單擊左側導覽列的函數,進入函數頁面,並在頂部功能表列選擇地區。
重要建立的Web函數的地區應與API Gateway執行個體地區相同。
在函數頁面,單擊建立函數,選擇Web函數,並進行如下配置,然後單擊建立。
基本設定:設定函數名稱。
函數代碼:配置函數的運行環境和代碼資訊,啟動命令和監聽連接埠使用預設配置。
在函數建立成功後將自動進入函數詳情頁,單擊配置欄,在左側導覽列選擇觸發器,在目標觸發器的配置資訊列處複製觸發器的內網訪問地址:
https://helloworld-***.cn-hangzhou-vpc.fcapp.run
方便在建立後端服務時使用。
步驟二:建立後端服務
API Gateway允許將後端服務配置為地區內的資源,簡化管理流程。您只需在API Gateway中建立後端服務,並配置後端服務地址來對接Function Compute服務即可。
登入API Gateway控制台,左側導覽列選擇API管理 > 後端服務,在頂部功能表列選擇地區,單擊建立後端服務。
在建立後端服務彈框中,按圖所示填寫配置資訊,並單擊確定。
在後端服務頁面,單擊剛剛建立的後端服務,進入後端服務定義頁,選擇線上頁簽,在基本資料處單擊建立。
在建立的基本資料頁面,配置觸發器路徑為建立Web函數時複製的觸發器的內網訪問地址
https://helloworld-***.cn-hangzhou-vpc.fcapp.run
,單擊發布。
步驟三:建立API
建立API使得外部應用能夠按照指定的方式調用內部的Web函數服務,使用API分組組織和管理多個相關的API介面,便於實施統一的安全性原則和流量控制措施。
在API Gateway控制台,左側導覽列選擇API管理 > 分組管理,單擊建立分組以便對API進行管理。
在建立分組彈框頁面,選擇執行個體,輸入分組名稱為
FC-Group
,BasePath為/
,單擊確定。分組建立完之後,單擊所建分組操作列下的API管理,進入API列表頁面。
單擊建立API,在基本資料欄,配置如下資訊,並單擊下一步。
在定義API請求欄,配置請求Path為
/
,其他資訊保持預設,單擊下一步。在定義API後端服務欄,如圖所示進行配置,並單擊下一步。
在定義返回結果欄,保持系統預設配置,單擊建立,在建立成功之後,單擊API操作列中的發布。
在發布API彈框中,進行如下配置,並單擊發布。
步驟四:建立應用和API授權
應用(APP)是調用API服務時的身份,在建立API時,認證方式選擇的是阿里雲APP認證,因此在API發布後,還需要建立APP,並將APP和API的授權關係建立好,才能夠正常訪問。
在API Gateway控制台的左側導覽列選擇API調用 > 應用管理。
在應用與授權頁面,單擊右上方建立APP。在建立應用頁面,輸入應用程式名稱為
fcAPP
,單擊確定。單擊已建立好的
fcApp
應用程式名稱,進入應用詳情頁面,可以看到阿里雲APP下有兩種認證方式,AppKey
和AppCode
。AppKey
方式有一組AppKey
和AppSecret
,您可以理解為帳號密碼,調用API的時候需要將AppKey
作為參數傳入,AppSecret
用於簽名計算,網關會校正這對金鑰組您進行身份認證。在左側導覽列選擇API管理 > API列表,在API列表頁面,找到已建立好的
FC-test
API,單擊操作列> 授權。在授權頁面,配置選擇要授權的環境為線上。搜尋之前建立的應用
fcApp
,單擊添加並確定,提示授權成功,即成功授權。
步驟五:調試API
利用API Gateway提供的線上調試工具,可以在正式發布前測試API的功能是否按預期工作,及時發現並解決問題。
在API Gateway控制台左側導覽列選擇API調用 > 調試。
在調試頁面選擇,所建立的
FC-test
API,驗證方式選擇使用AppCode,然後單擊發送請求,看到下圖資訊說明配置成功。
步驟六:調用API
您已經建立API、建立APP、建立了授權關係,調試API完成,並將API發布到線上環境,下面介紹如何使用APPCode的認證方式來在您的業務系統中調用發布好的API。可參考使用簡單認證(AppCode)方式調用API瞭解更多,本例中使用curl進行調用。
在API Gateway控制台左側導覽列API調用 > 應用管理,在應用與授權頁面找到授權的APP,單擊進入擷取APPCode。然後按照以下樣本調用API。
curl -i -X GET "http://fd6f8e2b7bf44ab181a56****-cn-hangzhou.alicloudapi.com" -H "Authorization:APPCODE 7d2b7e4945ce44028ab00***"
執行效果如下圖所示: