0

我正在尝试使用无服务器框架创建一个预定的 lambda 函数,并从不同的事件中发送不同的参数。

这是我的无服务器配置:

functions:
  profile:
    timeout: 10
    handler: profile.profile
    events:
      - schedule:
          rate: rate(1 minute)
          params:
            hello: world

问题是当我运行时sls deploy,我收到以下错误:

Serverless:   at 'functions.profile.events[0]': unrecognized property 'params'

这基本上是从这里的文档中复制的,所以应该可以工作......

我错过了什么吗?

4

3 回答 3

2

您引用的文档适用于 Apache Open Whisk。

如果您使用的是 AWS,则需要按照aws 文档input中所示使用

functions:
  aggregate:
    handler: statistics.handler
    events:
      - schedule:
          rate: rate(10 minutes)
          enabled: false
          input:
            key1: value1
            key2: value2
            stageParams:
              stage: dev
于 2021-01-05T14:55:58.527 回答
1

您提到的文档适用于 OpenWhisk https://www.serverless.com/framework/docs/providers/openwhisk/events/schedule/#schedule/

Cloudwatch Events(现在更名为 EventBridge)位于https://www.serverless.com/framework/docs/providers/aws/events/schedule/#enabling--disabling。示例代码供参考

functions:
  aggregate:
    handler: statistics.handler
    events:
      - schedule:
          rate: rate(10 minutes)
          enabled: false
          input:
            key1: value1
            key2: value2
            stageParams:
              stage: dev
      - schedule:
          rate: cron(0 12 * * ? *)
          enabled: false
          inputPath: '$.stageVariables'
      - schedule:
          rate: rate(2 hours)
          enabled: true
          inputTransformer:
            inputPathsMap:
              eventTime: '$.time'
            inputTemplate: '{"time": <eventTime>, "key1": "value1"}'

https://docs.aws.amazon.com/eventbridge/latest/userguide/scheduled-events.html上的官方文档

于 2021-01-05T15:08:35.443 回答
0

我可以看到我的配置之一,如下所示。在那里我们使用参数而不是param

functions:
  test_function:
    handler: handler.test_function
    memorySize: 512
    timeout: 60
    events:
      - http:
          path: get-hello
          method: get
          request:
            parameters:
              queryStrings:
                name: true
于 2021-01-05T14:22:53.317 回答