函數(shù)計算搭建ServerlessWeb應(yīng)用(一)-HTTP觸發(fā)器

摘要:            Web 應(yīng)用(Serverless web backend) 是函數(shù)計算很重要的一個使用場景。相比于傳統(tǒng)的在服務(wù)器上搭建 web 應(yīng)用,函數(shù)計算無需您管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳,函數(shù)計算會為您準(zhǔn)備好計算資源,以 彈性、可靠 的方式運行您的代碼,實現(xiàn)毫秒級別彈性伸縮,輕松應(yīng)對峰值壓力。

創(chuàng)新互聯(lián)是一家專業(yè)提供太子河企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都做網(wǎng)站、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為太子河眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

函數(shù)計算簡介

阿里云 函數(shù)計算(Function Compute)  是事件驅(qū)動的全托管計算服務(wù),是阿里云的 Serverless 計算平臺。基于函數(shù)計算構(gòu)建應(yīng)用,您無需管理服務(wù)器等基礎(chǔ)設(shè)施,而是專注于應(yīng)用邏輯的開發(fā),大幅提高開發(fā)效率。

借助函數(shù)計算,您幾乎可以構(gòu)建任何類型的應(yīng)用程序或后端服務(wù),包括 Web 應(yīng)用后端服務(wù),大規(guī)模文件處理,數(shù)據(jù)實時流式處理等等。函數(shù)計算能實時彈性伸縮計算資源來匹配您的應(yīng)用負(fù)載,使得您的系統(tǒng)能始終如一的、可靠的支撐業(yè)務(wù)的高速增長。此外您只需為實際使用的資源付費,函數(shù)未執(zhí)行則不付費,財務(wù)成本顯著減低。

函數(shù)計算遇見 Web 應(yīng)用

Web 應(yīng)用(Serverless web backend) 是函數(shù)計算很重要的一個使用場景。相比于傳統(tǒng)的在服務(wù)器上搭建 web 應(yīng)用,函數(shù)計算無需您管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳,函數(shù)計算會為您準(zhǔn)備好計算資源,以 彈性 、 可靠 的方式運行您的代碼,實現(xiàn)毫秒級別彈性伸縮,輕松應(yīng)對峰值壓力。

為了更好地支持 Serverless web backend 的使用場景,提升用戶體驗,函數(shù)計算推出 HTTP 觸發(fā)器,即可以通過 HTTP 請求觸發(fā)函數(shù)執(zhí)行,您只需將業(yè)務(wù)代碼寫在函數(shù)中就可以搭建 Web 應(yīng)用,同時,HTTP 觸發(fā)器各個編程語言對流行的 Web 框架做了不同程度的兼容,方便您將原有服務(wù)遷移到函數(shù)計算上來,真正實現(xiàn) 一行代碼,一觸即發(fā) 。

函數(shù)計算搭建 Serverless Web 應(yīng)用(一)- HTTP 觸發(fā)器

HTTP 觸發(fā)器

HTTP 觸發(fā)器,顧名思義,即 HTTP 請求可以觸發(fā)函數(shù)執(zhí)行。配置 HTTP 觸發(fā)器的函數(shù)可以通過 HTTP 請求觸發(fā)執(zhí)行。此時函數(shù)可以看做一個 Web 應(yīng)用,對 HTTP 請求進行處理,并將處理結(jié)果返回給調(diào)用端。

目前函數(shù)計算的 HTTP 觸發(fā)器支持 nodejs、python、php 等編程語言,并不同程度支持對應(yīng)的 Web 框架,具體內(nèi)容請參看 參考文檔 。

使用示例

下面對使用 HTTP 觸發(fā)器搭建 Web 應(yīng)用的示例進行介紹。

搭建基于 HTTP 觸發(fā)器的 Web 應(yīng)用分為三個步驟:

  • 配置 HTTP 觸發(fā)器

    • 只有配置了 HTTP 觸發(fā)器的函數(shù)才可以對 HTTP 請求進行處理;

    • 值得注意的是配置了 HTTP 觸發(fā)器的函數(shù)接口與普通函數(shù)接口不同。

  • 編寫處理函數(shù)

    • 編寫處理函數(shù)的時候一定注意配置了 HTTP 觸發(fā)器的函數(shù)接口與普通函數(shù)接口不同。

  • 測試函數(shù)執(zhí)行

    • 通過向函數(shù) HTTP 發(fā)送請求觸發(fā)函數(shù)執(zhí)行,并檢驗是否符合預(yù)期。

配置 HTTP 觸發(fā)器
  1. 登錄 函數(shù)計算管理控制臺 。

  2. 新建服務(wù),本示例的服務(wù)名稱為 web-server,所屬區(qū)域為華東2,開啟【高級配置】,配置日志項目和日志倉庫,角色創(chuàng)建方式為新建角色,系統(tǒng)授權(quán)模板選擇 AliyunLogFullAccess ,點擊 【授權(quán)】,點擊【確定】。

  3. 在左側(cè)導(dǎo)航欄選擇服務(wù),進入到新建的服務(wù)中。

  4. 單擊 【創(chuàng)建函數(shù)】,在創(chuàng)建函數(shù)頁面:

    • 認(rèn)證方式選擇 anonymous,不需要身份驗證,支持匿名訪問。

    • 請求方式為此函數(shù)可以處理的 HTTP Method。

    1. 單擊 【選擇全部的語言】,在下拉菜單中選擇開發(fā)語言。

    2. 選擇 【空白函數(shù)】。

    3. 按如下圖示配置 HTTP 觸發(fā)器,單擊 【下一步】。

    4. 創(chuàng)建函數(shù)并填寫所在服務(wù)、函數(shù)名稱、描述信息和運行環(huán)境信息。

    5. 單擊【下一步】。

    6. 核對信息無誤后,單擊【創(chuàng)建】。

配置 HTTP 觸發(fā)器更多內(nèi)容請參考 配置 HTTP 觸發(fā)器官方文檔 。

編寫函數(shù)代碼

以 Python 為例,一個簡單的示例代碼如下:

# -*- coding: utf-8 -*-import json
HELLO_WORLD = b"Hello world!\n"def handler(environ, start_response):
    request_uri = environ['fc.request_uri']
    response_body = {      'uri':environ['fc.request_uri'],      'method':environ['REQUEST_METHOD']
    }    # do something here
    status = '200 OK'
    response_headers = [('Content-type', 'text/json')]
    start_response(status, response_headers)    # Python2
    return [json.dumps(response_body)]    # Python3 tips: When using Python3, the str and bytes types cannot be mixed.
    # Use str.encode() to go from str to bytes
    # return [json.dumps(response_body).encode()]

更多編程語言的代碼示例及詳細(xì)信息請參考 編寫函數(shù)代碼 。

短短兩步,基于 HTTP 觸發(fā)器的 Web 應(yīng)用就搭建完成了,下面我們對函數(shù)進行測試,看是否符合我們的預(yù)期。

測試函數(shù)執(zhí)行

您需要向函數(shù)發(fā)送 HTTP 請求測試函數(shù)執(zhí)行是否符合預(yù)期。可以通過瀏覽器發(fā)送 HTTP 請求、curl 發(fā)送 HTTP 請求進行測試,控制臺也可以發(fā)送 HTTP 請求方便您的調(diào)試。

例如,通過 curl 發(fā)送 HTTP 請求觸發(fā)函數(shù)執(zhí)行,結(jié)果如下:

  ~ curl https://123456.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/web-server/testHttp/
{"uri": "/2016-08-15/proxy/web-server/testHttp/", "method": "GET"}%

通過控制臺及瀏覽器發(fā)送 HTTP 請求請參考文章 測試函數(shù)執(zhí)行 。

總結(jié)

使用 HTTP 觸發(fā)器可以快速搭建基于函數(shù)計算的 Web 服務(wù),按量付費,免運維,毫秒級彈性擴容,完美解決用戶痛點。
Serverless 時代已來,一行代碼,一觸即發(fā)。

參考文檔

HTTP 觸發(fā)器文檔
HTTP 觸發(fā)器示例
設(shè)置 HTTP 觸發(fā)器的 Nodejs 函數(shù)入口
設(shè)置 HTTP 觸發(fā)器的 Python 函數(shù)入口
設(shè)置 HTTP 觸發(fā)器的 PHP 函數(shù)入口
函數(shù)計算搭建 Serverless Web 應(yīng)用(二)- 自定義域名
函數(shù)計算搭建 Serverless Web 應(yīng)用(三)- 三分鐘搭建 Web 應(yīng)用

當(dāng)前題目:函數(shù)計算搭建ServerlessWeb應(yīng)用(一)-HTTP觸發(fā)器
網(wǎng)頁URL:http://muchs.cn/article12/iegjgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站制作、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、網(wǎng)站營銷微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)