日志服務SLS的每個Shard在有新的數據寫入的情況下都會觸發函數執行,所以您看到的觸發頻次是一個Logstore整體的觸發次數。同時當觸發發生延遲時觸發器會追趕數據,可能會縮短觸發間隔。
問題現象
SLS觸發器觸發函數執行的頻次有時高于預期的觸發頻次。
問題原因
每個Shard是單獨觸發的,您看到的可能是一個Logstore整體觸發次數很多,但每個Shard實時觸發時間是符合間隔的。
單個Shard的觸發間隔和每次處理的數據范圍相同(時間區間)。觸發間隔在函數執行時分如下兩種情況,假設觸發間隔為60秒。
觸發沒有延遲:按照設定周期觸發,每60秒觸發一次,處理的數據范圍為
[now -60s, now)
。說明函數觸發是分Shard獨立進行的, 假設Logstore有10個Shard,在實時處理數據時(觸發無延遲),每60秒對應10次函數觸發執行。
觸發發生延遲(當前處理到的日志服務Shard位置落后于最新寫入數據超過10秒):觸發器會進行追趕,可能縮短到2秒觸發一次,每次處理的數據范圍仍是60秒窗口。
文檔內容是否對您有幫助?