簡體   English   中英

從s3上傳到一定時間范圍內觸發lambda函數

[英]Trigger lambda function in a certain time range from s3 upload

目前,我們正在從 S3 Upload 觸發我們的 lambda 函數。 S3 上傳不是特定時間的,它可以隨時發生。

現在我們有了一個新要求,我們只能在某個時間范圍內運行 lambda,例如 13 UTC 到 20 UTC 之間。 這意味着如果 s3 上傳發生在 5 UTC,則 lambda 將在 13 UTC 觸發。

實施此更改的最佳方法是什么?

任何建議,將不勝感激。 提前致謝。

如果條件是必須在指定的時間范圍內完成上傳,則無需進行任何特殊操作。

如果您希望上傳觸發僅在滿足時間范圍后執行的 lambda,那么您可以使用 AWS Step Functions。 使用等待狀態,任務時間可以延遲 lambda 函數的調用。 延遲可以是動態的(例如 13 UTC - 當前時間)。

工作流程可能如下所示:

  1. 文件上傳到 S3
  2. 通知被發送到 EventBridge
  3. EventBridge 啟動狀態機
  4. 等待一段時間的狀態
  5. 等待狀態完成后觸發 Lambda

看:

由於觸發 Lambda 函數的時間現已固定,您可以在所需時間設置 CloudWatch 觸發器並將 Lambda 函數設置為該事件規則的源。

腳步 -

  1. 打開 Lambda 控制台的函數頁面。

  2. 選擇一個功能

  3. 在函數概覽下,選擇添加觸發器。

  4. 將觸發器類型設置為 EventBridge (CloudWatch Events)。

  5. 對於規則,選擇創建新規則。

  6. 配置其余選項並選擇添加。

規則只不過是您需要為所需時間設置的 cron 模式。 規則執行后,觸發器將根據 cron 啟動,並運行 lambda 函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM