天天看點

實踐篇:搭建無伺服器應用--函數計算+API網關+雲市場(提供手機号歸屬地查詢服務)

6月5日,阿裡雲的API網關上線了一個新功能,使用者定義API後端服務時可以選擇使用Function Compute,這樣API網關的使用者直接使用函數計算的技術能力,這也使得API網關具備可擴充的後端應用,與此同時函數計算也享受到API網關帶來的諸多的好處,例如API的請求流量管控、安全鑒權、通路監控、統計等等。

下面我做一個簡單的例子,把函數計算+API網關+雲市場三者結合起來,提供一個能查詢手機号歸屬地的服務,在這個架構裡不需要配置WEB容器、不需要搭建運作環境、不需要購買負載均衡,通過配置和一段代碼就能完成一個高擴容無伺服器的應用服務提供出去。

<b>API網關+函數計算+雲市場的結合架構圖</b>

<b></b>

實踐篇:搭建無伺服器應用--函數計算+API網關+雲市場(提供手機号歸屬地查詢服務)

整個這個架構搭建分三部分設定,<b>雲市場服務購買(免費),編寫函數代碼,設定API網關</b>,調試成功就可以開放API位址了。

進入雲市場選擇手機号歸屬地查詢(免費)服務,開通該服務,擷取到服務的APPCode,填寫到對應的代碼中。

<a href="https://fc.console.aliyun.com/#/serviceList/" target="_blank"><b>函數計算設定</b></a>

<b>第一步:建立一個服務</b>

直接在函數控制台上建立一個服務,填寫名稱和備注,或者選擇已有的服務,直接略過這步。

<b>第二步:建立空白函數,</b>選用Python2.7編譯環境,設定執行時間:1500ms,執行的記憶體128MB,因為是調用雲市場的接口來取到内容,該接口平均響應時間在1200ms左右。

其中函數代碼塊:

<b>第三步:通過控制台調試程式:</b>

如果想在控制台進行對程式調試,可以在執行頁面的觸發事件中加入模拟API網關invoke函數請求串:

<a href="https://apigateway.console.aliyun.com/#/cn-shanghai-inner/apis/list" target="_blank"><b>API</b><b>網關的設定:</b></a>

<b>第一步:建立分組:</b>如果沒有分組,建立一個分組,如果有,直接略過,看下一步,建立API

<b>第二步:建立API</b><b>,</b>通過引導頁面,完成4步操作,填寫基本資訊的時候,這個地方為了示範效果,選着不認證,一般對外的分組建議都選用阿裡雲APP認證,確定API請求安全和計量統計。

定義API請求:請求的Path就是你最終暴露給客戶的路徑,另外入參定義裡,需要填寫一個入參名,本例中設定mob,傳入一個手機号,見下圖:

實踐篇:搭建無伺服器應用--函數計算+API網關+雲市場(提供手機号歸屬地查詢服務)

定義API後端服務的時候,需要選擇FunctionCompute的類型,填寫的Serivce和Function都是事先在函數計算中設定好,這個地方填寫進去即可,

注意兩點:

1、你API網關所在的區域跟函數計算的區域同一個,避免走公網響應時間變長

2、在API網關上設定的逾時時間不小于你函數執行的時間,避免API網關提前終止請求響應。

實踐篇:搭建無伺服器應用--函數計算+API網關+雲市場(提供手機号歸屬地查詢服務)

<b>第三步:傳回結果示例:</b>

參考手機号歸屬地提供商的傳回值,填寫到API網關中,代碼如下:

<b>第四步:測試執行效果</b>

點選調試API頁面,在請求串裡填寫手機号,執行後,即可看到手機号歸屬地的傳回。

實踐篇:搭建無伺服器應用--函數計算+API網關+雲市場(提供手機号歸屬地查詢服務)

<b>通過URL位址發請求效果:</b>

在API網關中,如果自己有域名,在分組中設定自己的域名,也可以通過系統提供的二級域名來簡單試驗一下,看下圖,把位址拼接完整的請求位址,可以通過浏覽器試驗一下效果如何。

在分組詳情中可以查到二級域名:

實踐篇:搭建無伺服器應用--函數計算+API網關+雲市場(提供手機号歸屬地查詢服務)

在浏覽器請求的示範效果:

實踐篇:搭建無伺服器應用--函數計算+API網關+雲市場(提供手機号歸屬地查詢服務)

繼續閱讀