小编Rai*_*iju的帖子

如何将json输入传递给使用事件在Serverless中部署的Cron计划Lambda?

我一直在尝试在Serverless中部署Lambda,以便在每小时调用它的Cron计划上运行.在调用它时,我希望Lambda中的事件由我自己的JSON输入填充,而不是来自Cron事件的信息,这是部署时的默认输入.

在AWS控制台内部,我可以手动进入Lambda的Cron触发器,并将输入从"匹配事件"更改为"常量(JSON文本)",以获得我想要的结果.由于Serverless在部署Lambda时创建了这个规则,我觉得应该有一些方法可以通过serverless.yml文件中的配置来改变输入.在搜索无服务器的文档时,我无法找到任何内容,所以现在我想知道这是否可以通过无服务器处于当前状态,如果可以,那么如何去做.

任何意见,将不胜感激.

编辑:有一个应该添加此功能的更新,但是我仍然无法使用无服务器1.3.0的JSON进行部署(并且还使用1.2.0进行了测试).我使用的serverless.yml的一些例子如下:

functions:
  test:
    handler: test.test
    description: "test serverless Lambda"
    memorySize: 128
    timeout: 300
    events:
      - schedule:
        rate: rate(10 minutes)
        input:
          key: value
      - schedule:
        rate: rate(10 minutes)
        input: '{"key": "value"}'
      - schedule:
        rate: rate(10 minutes)
        input:
          key: 'value'
Run Code Online (Sandbox Code Playgroud)

从1.3.0开始,任何人都可以评论无服务器中此功能的状态,以及我上面的serverless.yml是否正常?

编辑2:发布工作serverless.yml

functions:
  test:
    handler: test.test
    description: "test serverless Lambda"
    memorySize: 128
    timeout: 300
    events:
      - schedule:
          rate: rate(10 minutes)
          enabled: true
          input:
            key: value
      - schedule:
          rate: rate(10 minutes)
          input: '{"key": "value"}'
          enabled: true
      - schedule:
          rate: rate(10 …
Run Code Online (Sandbox Code Playgroud)

aws-lambda serverless-framework

25
推荐指数
1
解决办法
5123
查看次数

在使用无服务器部署Lambdas时,如何重用S3存储桶?

最近,我们采用了Serverless来处理AWS环境中Lambda功能的部署,但是对于部署的每个独特功能,都会创建一个新的S3存储桶.这是低效的,并且无服务器创建的每个堆栈都有一个存储桶是理想的.有没有办法在serverless.yml文件中执行此操作?我尝试了以下资源的yml文件配置,但没有成功.

1 - 将存储桶列为要在yml中使用的资源

resources:
  Resources:
    ServerlessBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: serverless-test-bucket
Run Code Online (Sandbox Code Playgroud)

输出:

Serverless: Packaging service...
Serverless: Removing old service versions...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
............Serverless: Deployment failed!

  Serverless Error ---------------------------------------

     An error occurred while provisioning your stack: ServerlessBucket
     - serverless-test-bucket already exists.
Run Code Online (Sandbox Code Playgroud)

2 - 尝试引用yml中的存储桶

resources:
  Resources:
    ServerlessBucket:
      Type: AWS::S3::Bucket
      Properties:
        Ref: serverless-test-bucket
Run Code Online (Sandbox Code Playgroud)

输出:

Serverless: Packaging service...
Serverless: Removing old service versions... …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda serverless-framework

7
推荐指数
1
解决办法
2646
查看次数