如何在 serverless.yml 中配置 eventbridge 规则(使用无服务器框架)以在特定时间调用 lambda

Posted

技术标签:

【中文标题】如何在 serverless.yml 中配置 eventbridge 规则(使用无服务器框架)以在特定时间调用 lambda【英文标题】:How to configure eventbridge rule in serverless.yml (using serverless framework ) to invoke lambda on specific time 【发布时间】:2021-12-28 23:47:06 【问题描述】:

我们已经使用 AWS eventbridge 运行了 python lambda 函数,该函数是使用控制台手动配置的,以在每天晚上 9 点触发 lambda。目前,我们还有针对 eventbridge 的规则 arn。

计划:

因此,我们正在将所有内容迁移到无服务器框架,以自动化整个 lambda 部署并使用 serverless.yml 配置 eventbridge 以在晚上 9 点调用 lambda。

谁能告诉我该怎么做?

示例代码:

functions:
  myFunction:
    handler: index.handler
    events:
      - eventBridge:
          --------
          --------
          --------

【问题讨论】:

您可以阅读文档serverless.com/framework/docs/providers/aws/events/schedule @gizemsever 感谢您的建议。好吧,我正在寻找的是如何在我的 serverless.yml 中使用相同的 eventbridge 规则 ARN,该规则是通过控制台手动配置来调用 lambda 的?无论如何你可以建议plz。 您将需要完全替换已部署的现有资源集,因为无服务器框架将尝试使用新的 CloudFormation 堆栈从头开始部署,并且任何具有相同名称的现有资源都将导致错误 【参考方案1】:

在 serverless.com 上有描述这一点的文档。您所做的只是将 cron 计划添加到 EventBridge 事件中,就好像它是计划事件一样。例如:

functions:
  myFunction:
    handler: index.handler
    events:
      - eventBridge:
          schedule: cron(0 12 * * ? *)
          input:
            key1: value1

您可以在此处找到 EventBridge 的文档:https://www.serverless.com/framework/docs/providers/aws/events/event-bridge

对于 Schedule 事件,这里有一个 cron 计划示例:https://www.serverless.com/framework/docs/providers/aws/events/schedule

【讨论】:

感谢 Gareth 的建议。会尝试相同的。

以上是关于如何在 serverless.yml 中配置 eventbridge 规则(使用无服务器框架)以在特定时间调用 lambda的主要内容,如果未能解决你的问题,请参考以下文章

我们如何使用 serverless.yml 创建 AWS S3 存储桶并向其中添加文件?

如何使用 yaml 格式文件在 serverless.yml 中编写嵌套 IF,同时将其用于云形成?

cloudFormation 模板验证错误:如何拆分 serverless.yml 文件

在 CloudFormation 或 serverless.yml 中提供 OriginAccessIdentity 参考

无法解析“serverless.yml”:映射条目的缩进错误

Serverless.yml:在另一个中引用现有的环境变量