首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Serverless-脱机引发“配置错误”或“无法读取未定义的属性‘选项”。

Serverless-脱机引发“配置错误”或“无法读取未定义的属性‘选项”。
EN

Stack Overflow用户
提问于 2021-05-09 05:31:44
回答 3查看 4.1K关注 0票数 6

我正在尝试使用NodeJS、AWS、API、RDS和PostgreSQL部署一个无服务器的REST。

到目前为止,我已经成功地设置了PostgreSQL RDS,在开始编写函数来处理对DB的请求之前,我认为最好先在本地测试一个小函数,以检查请求是否被正确处理。

因此,在项目的根目录中,我安装了无服务器脱机:

npm安装无服务器脱机

在安装该类型时,它抛出了几个警告:

npm警告废弃的@hapi/pez@4.1.2:该版本已被废弃,不再受支持或维护

(如果这些信息无关紧要,我很抱歉,我很新,不知道什么是重要的,什么是不重要的。)

然后我配置了我的serverless.yml

代码语言:javascript
复制
service: serverless-node-postgres-rds-rest-api

app: serverless-app

frameworkVersion: '2'

provider:
  name: aws
  runtime: nodejs12.x
  lambdaHashingVersion: 20201221

plugins:
  - serverless-offline

configValidationMode: error

functions:
  hello:
    handler: handler.hello
    events:
      - httpApi:
          path: hello
          method: get

这是handler.js

代码语言:javascript
复制
'use strict';

module.exports.hello = async (event) => {
  return {
    statusCode: 200,
    body: JSON.stringify(
      {
        message: 'Go Serverless v1.0! Your function executed successfully!',
        input: event,
      },
      null,
      2
    ),
  };

  // Use this code if you don't use the http event with the LAMBDA-PROXY integration
  // return { message: 'Go Serverless v1.0! Your function executed successfully!', event };
};

这个问题是在运行时出现的。

无服务器离线

当它抛出错误时:

代码语言:javascript
复制
Serverless: Running "serverless" installed locally (in service node_modules)
 
 Serverless Error ----------------------------------------
 
  Configuration error at 'functions.hello.events[0].httpApi.path': value 'hello' does not satisfy pattern /^(?:\*|\/\S*)$/
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
  Your Environment Information ---------------------------
     Operating System:          darwin
     Node Version:              14.15.4
     Framework Version:         2.40.0 (local)
     Plugin Version:            4.5.3
     SDK Version:               4.2.2
     Components Version:        3.9.2

因此,我将serverless.yml中的路径更改为" path : /hello“,错误更改为:

代码语言:javascript
复制
Type Error ----------------------------------------------
 
  TypeError: Cannot read property 'options' of undefined
      at module.exports (/Users/randresverap/Development/Node/serverless-node-postgres-rds-rest-api/node_modules/serverless/lib/utils/telemetry/generatePayload.js:133:66)
      at async PluginManager.run (/Users/randresverap/Development/Node/serverless-node-postgres-rds-rest-api/node_modules/serverless/lib/classes/PluginManager.js:607:35)
      at async Serverless.run (/Users/randresverap/Development/Node/serverless-node-postgres-rds-rest-api/node_modules/serverless/lib/Serverless.js:325:5)
      at async /usr/local/lib/node_modules/serverless/scripts/serverless.js:634:9
 
     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

如果我将路径更改为" path:'*'“,则会引发相同的最后一个错误。

在按建议设置"SLS_DEBUG=*“环境变量之后,我再次运行它,但是结果几乎相同,没有额外的调试信息。

有人能告诉我我做错了什么吗?我花了几个小时在互联网上寻找解决办法,但我没有发现任何解决同样错误的帖子,而且在forum.serverless.com解决的问题给出了难以理解的纠缠信息。

有谁可以帮我?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-13 19:23:09

如果升级到2.41.2版的无服务器或更大版本,则此问题将得到解决。

npm i -g serverless@2.41.2

票数 2
EN

Stack Overflow用户

发布于 2021-05-13 11:23:36

在尝试使用不同的无服务器插件( Cannot read property 'options' of undefined )时,我得到了serverless-domain-manager错误。将Serverless的版本降级到2.38或更高版本似乎解决了这个问题。

票数 2
EN

Stack Overflow用户

发布于 2021-05-12 21:36:16

遇到了相同的问题,但是在从以前的项目切换到Packe-lock.json文件(相同的package.json)之后,问题就解决了。所以我认为是依赖导致了这个问题,但很抱歉,我还没能确定这种依赖是什么

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67454564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档