无服务器热身插件并发执行热身功能

时间:2019-01-22 14:47:54

标签: aws-lambda serverless-framework serverless aws-serverless

我在无服务器版本1.36.2上正常运行了serverless-plugin-warmup 4.2.0-rc.1

但是它只执行一个预热调用,而不是配置的五个预热调用。

serverless.yml配置是否有问题?

奇怪的是,我必须在功能部分添加'warmup:true'来使功能热身。根据{{​​3}}上的文档,“自定义”部分的配置应该足够。

plugins:
  - serverless-prune-plugin
  - serverless-plugin-warmup
custom:
  warmup:
    enabled: true
    concurrency: 5
    prewarm: true
    schedule: rate(2 minutes)
    source: { "type": "keepLambdaWarm" }
    timeout: 60

functions:
  myFunction:
    name: ${self:service}-${opt:stage}-${opt:version}
    handler: myHandler
    environment:
      FUNCTION_NAME: myFunction
    warmup: true

在AWS Cloud Watch中,我每2分钟只能看到一次执行。我希望每2分钟看到5次处决,还是我在这里误解了什么?

编辑: 现在使用master分支并发可以工作,但是现在传递给应该预热的函数的上下文已损坏:using Spring Cloud Functions =>“将客户端上下文解析为JSON时出错”

查看生成的预热函数的JS,交付的源看起来不正常=>

const functions = [{"name":"myFunction","config":{"enabled":true,"source":"\"\\\"{\\\\\\\"source\\\\\\\":\\\\\\\"serverless-plugin-warmup\\\\\\\"}\\\"\"","concurrency":3}}];

配置为:

custom:
  warmup:
    enabled: true
    concurrency: 3
    prewarm: true
    schedule: rate(5 minutes)
    timeout: 60

1 个答案:

答案 0 :(得分:0)

添加的属性sourceRaw:对warmup config正确,它将在Function JS中生成一个干净的源。

const functions = [{"name":"myFunctionName","config":{"enabled":true,"source":"{\"type\":\"keepLambdaWarm\"}","concurrency":3}}];

配置:

custom:
  warmup:
    enabled: true
    concurrency: 3
    prewarm: true
    schedule: rate(5 minutes)
    source: { "type": "keepLambdaWarm" }
    sourceRaw: true
    timeout: 60