繁体   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