搭建無服務器應用之手機號歸屬地查詢
本文主要介紹配合使用API網(wǎng)關(guān)、函數(shù)計算和云市場三種產(chǎn)品,搭建一個可以查詢手機號歸屬地的服務。在這個框架里不需要配置Web容器、不需要搭建運行環(huán)境、不需要購買負載均衡,通過配置和一段代碼即可完成一個高擴容無服務器的應用服務。
服務架構(gòu)圖
API網(wǎng)關(guān)+函數(shù)計算+云市場
操作步驟
此架構(gòu)的搭建可以分為如下三部分:
1. 在云市場申請服務(此處使用了免費服務)。
步驟一:在云市場申請服務
登錄云市場。
在云市場頁面,搜索手機號碼歸屬地查詢,選擇如下圖,單擊詳情并開通該服務。
在商品詳情頁可看到接口的調(diào)用地址為
https://ec8a.api.huachen.cn/mobile
。獲取認證,并獲取到服務的AppCode為
9b5f1c25ed5e4f3794dd0***********
。
步驟二:創(chuàng)建函數(shù)計算3.0(事件函數(shù))
登錄函數(shù)計算控制臺,在左側(cè)導航欄,單擊函數(shù)。
在頂部菜單欄,選擇地域,然后在函數(shù)頁面,單擊創(chuàng)建函數(shù)。
在創(chuàng)建函數(shù)頁面,選擇事件函數(shù),配置以下配置項,然后單擊創(chuàng)建。
在函數(shù)詳情頁簽的代碼欄下方的在線IDE中配置如下代碼,代碼配置中的參數(shù)值
host
,path
以及appcode
為步驟一中獲取到的值。# -*- coding: utf-8 -*- import json from urllib.request import Request, urlopen host = 'https://ec8a.api.huachen.cn' path = '/mobile' method = 'GET' appcode = '9b5f1c25ed5e4f3794dd0***********' headers = {'Authorization': 'APPCODE ' + appcode} def handler(event, context): ct = json.loads(event) mob = ct['queryParameters']['mob'] querys = 'mobile='+mob url = host + path + '?' + querys req = Request(url, headers=headers) response = urlopen(req) content = response.read().decode('utf-8') rep = { "isBase64Encoded": "false", "statusCode": "200", "headers": {"x-custom-header": "no"}, "body": content } return rep
單擊代碼欄下方的測試函數(shù) > 配置測試參數(shù),在配置測試參數(shù)框中,填寫事件名稱和如下參數(shù),單擊確定。
{ "queryParameters": { "mob": "18138******" } }
單擊頁面的部署代碼和測試函數(shù),可看到如下結(jié)果,說明創(chuàng)建函數(shù)計算服務(事件函數(shù))成功。
步驟三:配置API網(wǎng)關(guān)
創(chuàng)建后端服務
登錄API網(wǎng)關(guān)控制臺,選擇地域并在左側(cè)導航欄選擇API管理 > 后端服務,單擊右上角創(chuàng)建后端服務,配置如下信息,單擊確定。
在后端服務列表頁面,單擊
FC-mobile
的后端服務,選擇線上,單擊右上角創(chuàng)建,選擇函數(shù)名稱為getMobile
,單擊發(fā)布。
創(chuàng)建分組
登錄API網(wǎng)關(guān)控制臺,選擇地域并在左側(cè)導航欄選擇API管理 < 分組管理,單擊右上角創(chuàng)建分組,選擇API網(wǎng)關(guān)實例和填寫分組名稱mobile-group
如下:
創(chuàng)建API
登錄API網(wǎng)關(guān)控制臺,選擇地域并在左側(cè)導航欄選擇API管理 > 分組管理。
在分組列表頁面下,單擊所創(chuàng)建的
mobile-group
分組操作列下的API管理,在API列表頁面,單擊右上角創(chuàng)建API。在基本信息頁配置如下信息,單擊下一步。
說明填寫信息時,為了演示效果,此處選擇了不認證。一般對外的分組建議都選用阿里云APP認證,確保API請求安全和計量統(tǒng)計。
定義API請求頁配置如下信息,單擊下一步。
說明定義API請求:請求Path是最終暴露給用戶的路徑。
入?yún)⒍x:需定義入?yún)⒚瑐魅胧謾C號。本例中設(shè)置入?yún)⒚麨?code data-tag="code" code-type="xCode" class="code">mob。
定義API后端服務頁配置如下信息,單擊下一步。
說明建議API網(wǎng)關(guān)與函數(shù)計算選擇在同一區(qū)域,以免走公網(wǎng)導致響應時間變長。
API網(wǎng)關(guān)上設(shè)置的超時時間應不小于函數(shù)執(zhí)行的時間,以避免API網(wǎng)關(guān)提前終止請求響應。
在定義返回結(jié)果欄單擊創(chuàng)建。并發(fā)布API到線上。
調(diào)試API
登錄API網(wǎng)關(guān)控制臺,在左側(cè)導航欄選擇API管理 > API列表。
在API列表頁面,單擊創(chuàng)建的
mobile-test
API 操作列下的調(diào)試。在調(diào)試頁面單擊發(fā)送請求,可看到如下圖所示:
通過URL地址發(fā)送請求
API網(wǎng)關(guān)支持綁定自定義域名。如果您有自己的獨立域名,您可以登錄API網(wǎng)關(guān)控制臺,在左側(cè)導航欄的API管理 > 分組管理,在分組列表頁面單擊目標分組后在分組詳情頁面的獨立域名處進行綁定域名。
下面以系統(tǒng)提供的二級域名來簡單試驗,二級域名可以在分組管理頁面查到。
如下圖,把地址拼接完整的請求地址,通過curl
命令測試訪問效果。