觸發器是觸發函數執行的方式。在事件驅動的計算模型中,事件來源是事件的生產者,函數是事件的處理者,而觸發器提供了一種集中、統一的方式來管理不同的事件來源。在事件來源中,當事件發生時,如果滿足觸發器定義的規則,事件來源會自動調用觸發器關聯的函數。
什麼是觸發器
Function Compute提供了一種事件驅動的計算模型。函數的執行是由事件驅動的。函數的執行可以通過Function Compute控制台或SDK觸發,也可以由其他一些事件來源來觸發。您可以在指定函數中建立觸發器,該觸發器描述了一組規則,當某個事件滿足這些規則,事件來源就會觸發關聯的函數。
如果您需要使用一個觸發器觸發多個函數,可以結合使用Function Compute和Serverless 工作流程服務。首先通過觸發器觸發一個函數,該函數啟動Serverless 工作流程流程,然後在流程裡您可以調用多個函數。更多資訊,請參見樣本。
情境樣本
樣本一 :Object Storage ServiceOSS中的圖片狀態變更觸發函數執行
某應用使用Object Storage ServiceOSS存放上傳的圖片,您可以通過直接調用函數的方式去下載圖片進行處理,並將結果存入Object Storage ServiceOSS或者其他服務。如果Object Storage ServiceOSS能夠協助我們關注新上傳的圖片,並且自動去調用關聯的函數,您無需再調用函數,從而簡化了開發和使用流程。OSS觸發器的作用就是關注這些事件並調用Function Compute的函數。配置了OSS觸發器後,當有新圖片上傳,OSS觸發器會自動觸發函數下載並處理圖片。
樣本二:Simple Log ServiceSLS中日誌更新觸發函數執行
某應用使用Simple Log ServiceSLS定時採集更新的日誌,您可以通過直接調用函數對增量的日誌進行查詢和分析。如果Simple Log ServiceSLS能夠協助我們關注更新的日誌,並自動調用關聯的函數,您無需再調用函數。SLS觸發器的作用就是關注這些事件並調用Function Compute的函數。配置了SLS觸發器後,當有日誌更新,SLS觸發器會自動觸發函數消費增量的日誌。
樣本三:在指定時間觸發函數執行
某應用需要每隔1小時收集一次資料。您可以每隔1小時通過直接調用函數收集資料並處理。如果Function Compute中的函數能每隔1小時自動執行,您無需再關注時間。定時觸發器的作用就是關注時間事件並調用Function Compute的函數。配置了定時觸發器後,在指定的時間,定時觸發器會自動觸發函數收集和處理資料。
觸發器類型
按照觸發器整合方式,Function Compute支援的觸發器分為以下兩類:
雙向整合觸發器:您既可以在Function Compute,又可以在事件來源端配置觸發器。
雲產品事件觸發程序:支援在Function Compute配置觸發器,同時支援在事件匯流排EventBridge建立函數觸發規則,無需在事件來源端配置。
從函數調用方式的角度,觸發器又可以分為同步調用觸發器和非同步呼叫觸發器,兩種調用方式的區別如下所示。更多資訊,請參見同步調用。
同步調用:事件被函數處理後直接返回結果。例如,使用控制台調用函數屬於同步調用。
非同步呼叫:事件在寫入到Function Compute內部隊列後返回結果,Function Compute系統會保證該訊息被可靠地處理。
雙向整合觸發器
觸發器名稱 | 調用方式 | 文檔連結 | |
定時觸發器 | 非同步呼叫 | ||
Object Storage Service觸發器 | 非同步呼叫 | ||
Log ServiceSLS觸發器 | 同步調用 | ||
CDN觸發器 | 同步調用 | ||
Table StoreTablestore觸發器 | 同步調用 | ||
Simple Message Queue (formerly MNS)topic觸發器 | 非同步呼叫 | ||
自建Apache RocketMQ觸發器 | 同步/非同步呼叫 | ||
HTTP觸發器 | 同步/非同步呼叫 | ||
通過事件匯流排EventBridge實現的觸發器 | Simple Message Queue (formerly MNS)queue觸發器 | 同步/非同步呼叫 | |
訊息佇列RocketMQ版觸發器 | 同步/非同步呼叫 | ||
訊息佇列RabbitMQ版觸發器 | 同步/非同步呼叫 | ||
訊息佇列Kafka版觸發器 | 同步/非同步呼叫 | ||
Message QueueTT版觸發器 | 同步/非同步呼叫 | ||
Data Transmission Service觸發器 | 同步/非同步呼叫 |
雲產品事件觸發程序
觸發器名稱 | 調用方式 | 樣本連結 |
阿里雲官方事件來源觸發器 | 同步/非同步呼叫 |