摘要:配置觸發(fā)器的函數(shù)可以通過請求觸發(fā)執(zhí)行。目前函數(shù)計(jì)算的觸發(fā)器支持等編程語言,并不同程度支持對應(yīng)的框架,具體內(nèi)容請參看參考文檔。編寫處理函數(shù)編寫處理函數(shù)的時候一定注意配置了觸發(fā)器的函數(shù)接口與普通函數(shù)接口不同。
摘要: Web 應(yīng)用(Serverless web backend) 是函數(shù)計(jì)算很重要的一個使用場景。相比于傳統(tǒng)的在服務(wù)器上搭建 web 應(yīng)用,函數(shù)計(jì)算無需您管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳,函數(shù)計(jì)算會為您準(zhǔn)備好計(jì)算資源,以 彈性、可靠 的方式運(yùn)行您的代碼,實(shí)現(xiàn)毫秒級別彈性伸縮,輕松應(yīng)對峰值壓力。
函數(shù)計(jì)算簡介
阿里云 函數(shù)計(jì)算(Function Compute) 是事件驅(qū)動的全托管計(jì)算服務(wù),是阿里云的 Serverless 計(jì)算平臺?;诤瘮?shù)計(jì)算構(gòu)建應(yīng)用,您無需管理服務(wù)器等基礎(chǔ)設(shè)施,而是專注于應(yīng)用邏輯的開發(fā),大幅提高開發(fā)效率。
借助函數(shù)計(jì)算,您幾乎可以構(gòu)建任何類型的應(yīng)用程序或后端服務(wù),包括 Web 應(yīng)用后端服務(wù),大規(guī)模文件處理,數(shù)據(jù)實(shí)時流式處理等等。函數(shù)計(jì)算能實(shí)時彈性伸縮計(jì)算資源來匹配您的應(yīng)用負(fù)載,使得您的系統(tǒng)能始終如一的、可靠的支撐業(yè)務(wù)的高速增長。此外您只需為實(shí)際使用的資源付費(fèi),函數(shù)未執(zhí)行則不付費(fèi),財(cái)務(wù)成本顯著減低。
函數(shù)計(jì)算遇見 Web 應(yīng)用
Web 應(yīng)用(Serverless web backend) 是函數(shù)計(jì)算很重要的一個使用場景。相比于傳統(tǒng)的在服務(wù)器上搭建 web 應(yīng)用,函數(shù)計(jì)算無需您管理服務(wù)器等基礎(chǔ)設(shè)施,只需編寫代碼并上傳,函數(shù)計(jì)算會為您準(zhǔn)備好計(jì)算資源,以 彈性、可靠 的方式運(yùn)行您的代碼,實(shí)現(xiàn)毫秒級別彈性伸縮,輕松應(yīng)對峰值壓力。
為了更好地支持 Serverless web backend 的使用場景,提升用戶體驗(yàn),函數(shù)計(jì)算推出 HTTP 觸發(fā)器,即可以通過 HTTP 請求觸發(fā)函數(shù)執(zhí)行,您只需將業(yè)務(wù)代碼寫在函數(shù)中就可以搭建 Web 應(yīng)用,同時,HTTP 觸發(fā)器各個編程語言對流行的 Web 框架做了不同程度的兼容,方便您將原有服務(wù)遷移到函數(shù)計(jì)算上來,真正實(shí)現(xiàn) 一行代碼,一觸即發(fā)。
HTTP 觸發(fā)器
HTTP 觸發(fā)器,顧名思義,即 HTTP 請求可以觸發(fā)函數(shù)執(zhí)行。配置 HTTP 觸發(fā)器的函數(shù)可以通過 HTTP 請求觸發(fā)執(zhí)行。此時函數(shù)可以看做一個 Web 應(yīng)用,對 HTTP 請求進(jìn)行處理,并將處理結(jié)果返回給調(diào)用端。
目前函數(shù)計(jì)算的 HTTP 觸發(fā)器支持 nodejs、python、php 等編程語言,并不同程度支持對應(yīng)的 Web 框架,具體內(nèi)容請參看 參考文檔。
使用示例
下面對使用 HTTP 觸發(fā)器搭建 Web 應(yīng)用的示例進(jìn)行介紹。
搭建基于 HTTP 觸發(fā)器的 Web 應(yīng)用分為三個步驟:
配置 HTTP 觸發(fā)器
只有配置了 HTTP 觸發(fā)器的函數(shù)才可以對 HTTP 請求進(jìn)行處理;
值得注意的是配置了 HTTP 觸發(fā)器的函數(shù)接口與普通函數(shù)接口不同。
編寫處理函數(shù)
編寫處理函數(shù)的時候一定注意配置了 HTTP 觸發(fā)器的函數(shù)接口與普通函數(shù)接口不同。
測試函數(shù)執(zhí)行
通過向函數(shù) HTTP 發(fā)送請求觸發(fā)函數(shù)執(zhí)行,并檢驗(yàn)是否符合預(yù)期。
配置 HTTP 觸發(fā)器
登錄 函數(shù)計(jì)算管理控制臺。
新建服務(wù),本示例的服務(wù)名稱為 web-server,所屬區(qū)域?yàn)槿A東2,開啟【高級配置】,配置日志項(xiàng)目和日志倉庫,角色創(chuàng)建方式為新建角色,系統(tǒng)授權(quán)模板選擇 AliyunLogFullAccess,點(diǎn)擊 【授權(quán)】,點(diǎn)擊【確定】。
在左側(cè)導(dǎo)航欄選擇服務(wù),進(jìn)入到新建的服務(wù)中。
單擊 【創(chuàng)建函數(shù)】,在創(chuàng)建函數(shù)頁面:
單擊 【選擇全部的語言】,在下拉菜單中選擇開發(fā)語言。
選擇 【空白函數(shù)】。
按如下圖示配置 HTTP 觸發(fā)器,單擊 【下一步】。
認(rèn)證方式選擇 anonymous,不需要身份驗(yàn)證,支持匿名訪問。
請求方式為此函數(shù)可以處理的 HTTP Method。
創(chuàng)建函數(shù)并填寫所在服務(wù)、函數(shù)名稱、描述信息和運(yùn)行環(huán)境信息。
單擊【下一步】。
核對信息無誤后,單擊【創(chuàng)建】。
配置 HTTP 觸發(fā)器更多內(nèi)容請參考 配置 HTTP 觸發(fā)器官方文檔。
編寫函數(shù)代碼
以 Python 為例,一個簡單的示例代碼如下:
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ù)進(jìn)行測試,看是否符合我們的預(yù)期。
測試函數(shù)執(zhí)行
您需要向函數(shù)發(fā)送 HTTP 請求測試函數(shù)執(zhí)行是否符合預(yù)期??梢酝ㄟ^瀏覽器發(fā)送 HTTP 請求、curl 發(fā)送 HTTP 請求進(jìn)行測試,控制臺也可以發(fā)送 HTTP 請求方便您的調(diào)試。
例如,通過 curl 發(fā)送 HTTP 請求觸發(fā)函數(shù)執(zhí)行,結(jié)果如下:
~ curl https://123456.cn-shanghai.fc...
{"uri": "/2016-08-15/proxy/web-server/testHttp/", "method": "GET"}%
通過控制臺及瀏覽器發(fā)送 HTTP 請求請參考文章 測試函數(shù)執(zhí)行。
總結(jié)
使用 HTTP 觸發(fā)器可以快速搭建基于函數(shù)計(jì)算的 Web 服務(wù),按量付費(fèi),免運(yùn)維,毫秒級彈性擴(kuò)容,完美解決用戶痛點(diǎn)。
Serverless 時代已來,一行代碼,一觸即發(fā)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/8855.html
摘要:摘要本文對使用自定義域名觸發(fā)器搭建應(yīng)用的步驟進(jìn)行詳細(xì)介紹,手把手帶您三分鐘搭建穩(wěn)定可靠的應(yīng)用。函數(shù)計(jì)算搭建應(yīng)用一觸發(fā)器中闡述了應(yīng)用是函數(shù)計(jì)算很重要的一個使用場景。 摘要: 本文對使用自定義域名 + HTTP 觸發(fā)器搭建 Web 應(yīng)用的步驟進(jìn)行詳細(xì)介紹,手把手帶您三分鐘搭建穩(wěn)定可靠的 Web 應(yīng)用。 簡介阿里云 函數(shù)計(jì)算(Function Compute) 是事件驅(qū)動的全托管計(jì)算服務(wù),是...
摘要:如果使用阿里云函數(shù)計(jì)算,您將高峰期每小時的訪問日志,或者低谷期每小時的訪問日志交給一個計(jì)算函數(shù)處理,并將處理結(jié)果存到中。下面結(jié)合阿里云的函數(shù)計(jì)算產(chǎn)品來講解各個應(yīng)用場景中架構(gòu)以及如何解決的場景中的痛點(diǎn)。 摘要: Serverless概念是近年來特別火的一個技術(shù)概念,基于這種架構(gòu)能構(gòu)建出很多應(yīng)用場景,適合各行各業(yè),只要對輕計(jì)算、高彈性、無狀態(tài)等場景有訴求的用戶都可以通過本文來普及一些基礎(chǔ)概...
摘要:導(dǎo)讀近期靈雀云技術(shù)專家邵明岐翻譯了所著的一書的部分內(nèi)容,可以說是對科普與觀察的上佳素材。的另一半是是的另一種形式,概念上容易混淆的地方在于,有時候?qū)⒆约旱姆?wù),,稱為。 導(dǎo)讀:近期靈雀云技術(shù)專家邵明岐翻譯了Mike Roberts & John Chapin所著的《What is serverless》一書的部分內(nèi)容,可以說是對Serverless科普與觀察的上佳素材。本文為第1篇,他...
摘要:初版在年月發(fā)布,隨后在月正式發(fā)布。架構(gòu)屬于平臺即服務(wù),針對事件驅(qū)動,短暫性的工作負(fù)載。架構(gòu)平臺選擇目前最有效構(gòu)建架構(gòu)方法是在眾多架構(gòu)平臺中選擇其一,并充分利用它所有的功能,以下將列舉幾個架構(gòu)平臺亞馬遜推出了第一個的云服務(wù)平臺。 showImg(https://segmentfault.com/img/remote/1460000009775604?w=640&h=356); 數(shù)人云近來...
閱讀 1461·2021-09-24 10:26
閱讀 3752·2021-09-06 15:02
閱讀 713·2019-08-30 14:18
閱讀 639·2019-08-30 12:44
閱讀 3170·2019-08-30 10:48
閱讀 2008·2019-08-29 13:09
閱讀 2061·2019-08-29 11:30
閱讀 2372·2019-08-26 13:36