為滿足不同情境下的使用者需求,Function Compute提供事件函數和HTTP函數兩種函數類型。本文介紹Function Compute支援的函數類型的適用情境及差異,供您進行技術選型。
選型分析
Function Compute支援兩種類型的函數:事件函數和HTTP函數。
事件函數適用於事件驅動模型中通過事件發生來調用關聯函數。
HTTP函數適用於快速構建Web應用等情境。
Function Compute的編程模型中,入口函數的模型由函數名、函數入參和傳回值三部分組成。其中,函數入參也可以調用代碼中定義的其他函數。
事件函數和HTTP函數在觸發方式和函數入參兩方面的區別如下。
函數類型 | 觸發方式 | 函數入參 |
事件函數 | 您可以通過觸發函數執行來實現某個特定功能。事件函數支援通過定時器、調用API/SDK或其他阿里雲服務的觸發器來觸發函數執行。支援建立任何除HTTP觸發器以外類型的觸發器,例如OSS觸發器、SLS觸發器、CDN事件觸發程序、Tablestore觸發器和EventBridge觸發器等。關於支援的觸發器類型和更多資訊,請參見觸發器簡介。所有支援類型的觸發器均可觸發事件函數。 | 以Node.js語言為例,一個簡單的入口函數模型如下所示。
有關Node.js事件函數的更多資訊,請參見事件請求處理常式(Event Handler)。有關其他程式設計語言的函數入參介紹,請參見開發語言列表。 |
HTTP函數 | HTTP函數僅支援通過發送HTTP/HTTPS請求來觸發函數執行。您可以自行配置觸發方式,例如GET、POST、PUT、DELETE、HEAD和PATCH方式。 為函數建立HTTP觸發器後,HTTP觸發器通過發送HTTP/HTTPS請求觸發函數執行。一個版本或別名下僅支援建立一個HTTP觸發器。具體資訊,請參見HTTP觸發器概述。 | 以Node.js語言為例,一個簡單的入口函數模型如下所示。
有關Node.js HTTP函數的更多資訊,請參見HTTP請求處理常式(HTTP Handler)。有關其他程式設計語言的函數入參介紹,請參見開發語言列表。 |