无服务器框架 WarmUp 插件未被调用

Igo*_*ler 2 aws-lambda serverless-framework serverless

我尝试将 WarmUp 无服务器插件集成到我的项目中。但是,我相信它不起作用。我在 lambda\xe2\x80\x99s CloudWatch 日志组中没有看到 WarmUp 的调用,并且 lambda 在空闲一段时间后确实需要预热时间。

\n

我的配置如下:

\n
service: ${file(./${env:DEPLOY_FILE_NAME}):service}\n\nprovider:\n  name: aws\n  custom:\n    roleName: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):roleName}\n    profileName: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):profileName}\n    bundle:\n      ignorePackages:\n        - pg-native\n    warmup:\n      enabled: true\n      events:\n        - schedule: rate(5 minutes)\n      prewarm: true\n  plugins:\n    - pluginHandler\n    - serverless-plugin-warmup\n  runtime: nodejs12.x\n  iamRoleStatements:\n    - Effect: 'Allow'\n      Action:\n        - 'lambda:InvokeFunction'\n      Resource:\n      - Fn::Join:\n        - ':'\n        - - arn:aws:lambda\n          - Ref: AWS::Region\n          - Ref: AWS::AccountId\n          - function:${self:service}-${opt:stage, self:provider.stage}-*\n  cfLogs: true\n  stage: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):stage}\n  region: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):region}\n  memorySize: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):memorySize}\n  timeout: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):timeout}\n  keepWarm: false\n  useApigateway: true\n\npackage:\n  exclude:\n    ${file(./${env:DEPLOY_FILE_NAME}):exclude}\n\nfunctions:\n  lambdaHandler:\n    handler: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):handler}\n    events:\n      ${file(./${env:DEPLOY_FILE_NAME}):events}\n    warmup:\n      enabled: true\n
Run Code Online (Sandbox Code Playgroud)\n

拉姆达代码:

\n
const awsLambdaFastify = require('aws-lambda-fastify');\nconst app = require('./index');\n\nconst proxy = awsLambdaFastify(app);\n\nconst fastify = (event, context, callback) => {\n  context.callbackWaitsForEmptyEventLoop = false;\n  proxy(event, context, callback);\n};\n\nconst warm = func => (event, context, callback) => {\n  if (event.source === 'serverless-plugin-warmup') {\n    return callback(null, 'Lambda is warm!');\n  }\n\n  return func(event, context, callback);\n};\n\nexports.handler = warm(fastify);\n
Run Code Online (Sandbox Code Playgroud)\n

有什么我可以检查的吗?非常感谢任何建议/指示。

\n

谢谢

\n

elb*_*bik 5

首先,请将插件从provider

plugins:
    - serverless-plugin-warmup
provider:
    ...
Run Code Online (Sandbox Code Playgroud)