函數(shù)類型選型
為滿足不同場景下的用戶需求,函數(shù)計(jì)算提供事件函數(shù)和HTTP函數(shù)兩種函數(shù)類型。本文介紹函數(shù)計(jì)算支持的函數(shù)類型的適用場景及差異,供您進(jìn)行技術(shù)選型。
選型分析
函數(shù)計(jì)算支持兩種類型的函數(shù):事件函數(shù)和HTTP函數(shù)。
事件函數(shù)適用于事件驅(qū)動(dòng)模型中通過事件發(fā)生來調(diào)用關(guān)聯(lián)函數(shù)。
HTTP函數(shù)適用于快速構(gòu)建Web應(yīng)用等場景。
函數(shù)計(jì)算的編程模型中,入口函數(shù)的模型由函數(shù)名、函數(shù)入?yún)⒑头祷刂等糠纸M成。其中,函數(shù)入?yún)⒁部梢哉{(diào)用代碼中定義的其他函數(shù)。
事件函數(shù)和HTTP函數(shù)在觸發(fā)方式和函數(shù)入?yún)煞矫娴膮^(qū)別如下。
函數(shù)類型 | 觸發(fā)方式 | 函數(shù)入?yún)?/b> | ||||||||
事件函數(shù) | 您可以通過觸發(fā)函數(shù)執(zhí)行來實(shí)現(xiàn)某個(gè)特定功能。事件函數(shù)支持通過定時(shí)器、調(diào)用API/SDK或其他阿里云服務(wù)的觸發(fā)器來觸發(fā)函數(shù)執(zhí)行。支持創(chuàng)建任何除HTTP觸發(fā)器以外類型的觸發(fā)器,例如OSS觸發(fā)器、SLS觸發(fā)器、CDN事件觸發(fā)器、Tablestore觸發(fā)器和EventBridge觸發(fā)器等。關(guān)于支持的觸發(fā)器類型和更多信息,請參見觸發(fā)器簡介。所有支持類型的觸發(fā)器均可觸發(fā)事件函數(shù)。 | 以Node.js語言為例,一個(gè)簡單的入口函數(shù)模型如下所示。
有關(guān)Node.js事件函數(shù)的更多信息,請參見事件請求處理程序(Event Handler)。有關(guān)其他編程語言的函數(shù)入?yún)⒔榻B,請參見開發(fā)語言列表。 | ||||||||
HTTP函數(shù) | HTTP函數(shù)僅支持通過發(fā)送HTTP/HTTPS請求來觸發(fā)函數(shù)執(zhí)行。您可以自行配置觸發(fā)方式,例如GET、POST、PUT、DELETE、HEAD和PATCH方式。 為函數(shù)創(chuàng)建HTTP觸發(fā)器后,HTTP觸發(fā)器通過發(fā)送HTTP/HTTPS請求觸發(fā)函數(shù)執(zhí)行。一個(gè)版本或別名下僅支持創(chuàng)建一個(gè)HTTP觸發(fā)器。具體信息,請參見HTTP觸發(fā)器概述。 | 以Node.js語言為例,一個(gè)簡單的入口函數(shù)模型如下所示。
有關(guān)Node.js HTTP函數(shù)的更多信息,請參見HTTP請求處理程序(HTTP Handler)。有關(guān)其他編程語言的函數(shù)入?yún)⒔榻B,請參見開發(fā)語言列表。 |