【问题标题】:how to add multiple targets in serverless.yml schedule event如何在 serverless.yml 调度事件中添加多个目标
【发布时间】:2018-10-03 16:42:50
【问题描述】:

我正在尝试从 Cloudwatch 事件调用多个 lambda,我不确定如何使用 serverless.yml 添加其他目标 lambda。 下面的代码添加只添加一个目标,但我想要多个,从控制台我可以添加多个目标,我触发了不同的 Lambda

 - schedule:
          name: lambda-warmer-scheduler
          description: 'scheduler to warmup lambdas '
          rate: rate(2 minutes)

从控制台我可以添加多个目标,我们如何使用 yml

【问题讨论】:

    标签: amazon-web-services aws-lambda serverless-framework


    【解决方案1】:

    编辑:
    我现在了解到您的目标是创建一个 lambda 加热系统。
    您可以为此使用非常好的serverless-plugin-warmup。它完全按照您尝试实现的方式完成您想要实现的目标。


    serverless.yml 中函数声明中的 events 属性是一个列表。您可以添加几个将触发 lambda 的事件:

    functions:
      yourFunction:
        handler: yourFunction.handler
          events:
            - schedule:
                  name: lambda-warmer-scheduler
                  description: 'scheduler to warmup lambdas '
                  rate: rate(2 minutes)
            - schedule:
                  name: lambda-warmer-scheduler-2
                  description: 'scheduler to warmup lambdas '
                  rate: rate(5 minutes)
            - schedule:
                  name: lambda-warmer-scheduler-3
                  description: 'scheduler to warmup lambdas '
                  rate: rate(5 hours)
    

    events 属性上的每个项目都将创建一个事件(在此示例中仅调度,但您可以混合不同的事件源,如调度、http、流...)。

    【讨论】:

    • 但它会创建另一个调度器,我想要一个调度器和多个目标。我的场景是我有一个 Order Lambda,它将调用其他 Lambda SecurityLamba> ProductLambda。所以我想从一个 Lambda 中预热所有 lambda,在我的例子中是 Order。否则我可以在每个 lambda 中创建调度程序。
    • 我用一个无服务器插件的链接编辑了我的答案,该插件完全符合您的要求。我在所有项目中都使用它。
    • 谢谢昆汀,是的,我正在寻找预热 lambda,我是无服务器世界的新手,你能告诉我如何添加插件,我正在使用 .net 核心项目。不确定在哪里执行 npm ,(通过 npm 在无服务器服务的根目录中安装)无服务器服务的根目录在哪里。
    • 无服务器服务的根目录是您的 serverless.yml 文件所在的位置。
    猜你喜欢
    • 2019-03-14
    • 1970-01-01
    • 2014-04-18
    • 2017-05-03
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    相关资源
    最近更新 更多