无服务器离线:“路径”参数必须是字符串类型。收到未定义

Posted

技术标签:

【中文标题】无服务器离线:“路径”参数必须是字符串类型。收到未定义【英文标题】:Serverless Offline: The "path" argument must be of type string. Received undefined 【发布时间】:2021-07-14 19:27:13 【问题描述】:

不知道为什么会发生这种情况,但我有一个非常简单的无服务器应用程序正在运行,但是现在当我运行 sls offline start 时,我得到了上面的错误。我找到了罪魁祸首,它是函数内部的events

这是serverless.yml 文件:

service: hello-world-offline

provider:
  name: aws
  runtime: nodejs12.x
  region: eu-east-1
  stage: dev

plugins:
  - serverless-offline

functions:
  hello-world:
    handler: handler.handle # required, handler set in AWS Lambda
    events:
      - http:
          path: hello-world
          method: get
          cors: true

这是handler.js 文件:

module.exports.handle = async (event, ctx, cb) => 
  cb(null, 
    statusCode: 200,
    body: JSON.stringify( message: "hello world" )
  )

如果我去掉函数hello-world 中的events,那么sls offline start 一切正常,当然我实际上无法在本地访问端点。我尝试通过添加引号使其成为硬字符串,但没有任何效果。

编辑:原来在使用yarn workspaces 时会发生这种情况。如果我把它放在packages/my-serverless-app 结构中并 cd 进入文件夹以运行sls offline start 命令,就会发生这种情况。如果我将它从结构中移除,它就可以正常工作。

【问题讨论】:

【参考方案1】:

改变

events:
      - http:
          path: hello-world
          method: get
          cors: true

events:
      - httpApi:
          path: hello-world
          method: get

这应该可以工作!

【讨论】:

以上是关于无服务器离线:“路径”参数必须是字符串类型。收到未定义的主要内容,如果未能解决你的问题,请参考以下文章

“路径”参数必须是字符串类型。收到未定义。未能验证 1 份合同

错误:“路径”参数必须是字符串类型。唱歌apk github动作时收到类型未定义

npm 发布失败,并显示““路径”参数必须是字符串类型。收到未定义”

NodeJS - TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。收到未定义

Nrwl:Storybook 给我错误 TypeError [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。收到未定义

axios “url”参数必须是字符串类型。收到类型未定义的错误