溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

函數計算搭建 Serverless Web 應用(一)- HTTP 觸發器

發布時間:2020-08-09 23:52:22 來源:ITPUB博客 閱讀:228 作者:許此一生 欄目:軟件技術

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

函數計算簡介

阿里云 函數計算(Function Compute)  是事件驅動的全托管計算服務,是阿里云的 Serverless 計算平臺?;诤瘮涤嬎銟嫿☉?,您無需管理服務器等基礎設施,而是專注于應用邏輯的開發,大幅提高開發效率。

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

函數計算遇見 Web 應用

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

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

函數計算搭建 Serverless Web 應用(一)- HTTP 觸發器

HTTP 觸發器

HTTP 觸發器,顧名思義,即 HTTP 請求可以觸發函數執行。配置 HTTP 觸發器的函數可以通過 HTTP 請求觸發執行。此時函數可以看做一個 Web 應用,對 HTTP 請求進行處理,并將處理結果返回給調用端。

目前函數計算的 HTTP 觸發器支持 nodejs、python、php 等編程語言,并不同程度支持對應的 Web 框架,具體內容請參看 參考文檔 。

使用示例

下面對使用 HTTP 觸發器搭建 Web 應用的示例進行介紹。

搭建基于 HTTP 觸發器的 Web 應用分為三個步驟:

  • 配置 HTTP 觸發器

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

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

  • 編寫處理函數

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

  • 測試函數執行

    • 通過向函數 HTTP 發送請求觸發函數執行,并檢驗是否符合預期。

配置 HTTP 觸發器
  1. 登錄 函數計算管理控制臺 。

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

  3. 在左側導航欄選擇服務,進入到新建的服務中。

  4. 單擊 【創建函數】,在創建函數頁面:

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

    • 請求方式為此函數可以處理的 HTTP Method。
      函數計算搭建 Serverless Web 應用(一)- HTTP 觸發器

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

    2. 選擇 【空白函數】。

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

    4. 創建函數并填寫所在服務、函數名稱、描述信息和運行環境信息。

    5. 單擊【下一步】。

    6. 核對信息無誤后,單擊【創建】。

配置 HTTP 觸發器更多內容請參考 配置 HTTP 觸發器官方文檔 。

編寫函數代碼

以 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()]

更多編程語言的代碼示例及詳細信息請參考 編寫函數代碼 。

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

測試函數執行

您需要向函數發送 HTTP 請求測試函數執行是否符合預期??梢酝ㄟ^瀏覽器發送 HTTP 請求、curl 發送 HTTP 請求進行測試,控制臺也可以發送 HTTP 請求方便您的調試。

例如,通過 curl 發送 HTTP 請求觸發函數執行,結果如下:

  ~ 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"}%

通過控制臺及瀏覽器發送 HTTP 請求請參考文章 測試函數執行 。

總結

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

參考文檔

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女