问题标签 [serverless-offline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
686 浏览

python - 如何通过 VS Code 使用无服务器离线调试 AWS python lambdas?

我试图找出一种使用无服务器框架和无服务器离线调试 VS Code 中的 AWS python lambdas 的方法。我已经到了可以在 VS Code 中运行 lambda 表达式的地步,但我无法设置断点。我不确定这是否可能,但从我读过的内容来看,它似乎是可能的。如果有人可以提供帮助,将不胜感激。

这是我当前的launch.json:

package.json 的 Scripts 部分如下:

同样,此设置有效。我只是希望能够在我的 .py 文件中设置断点。当我将鼠标悬停在左侧排水沟中的断点上时,它们显示为灰色并读取Breakpoint ignored because generated code not found (source map problem?).我不确定如何解决这个问题,因为 python 文件没有源映射。我尝试将outfilelaunch.json 的字段设置为 python 文件本身,但这显然不起作用。

提前感谢那些能够提供帮助的人。

注意:我知道有一种方法可以让它与 AWS SAM CLI 一起使用,但不幸的是,这不是我的选择。必须是无服务器框架。

编辑:我认为这应该是可能的,但是,我研究得越多,我就越怀疑。如果您甚至可以确定这是不可能的,那将不胜感激!我一直在寻找一段时间,没有进一步的发展。

0 投票
1 回答
2133 浏览

serverless-framework - 使用单独的无服务器离线包或 AWS SAM Local 或 Moto 库在本地运行 lambda

我需要创建一个集成项目,它在执行时应该启动所有 aws mock 服务,例如S3、API 网关、SQS、Dynamo dbSSM。我们使用serverless.com 框架在内部使用上述 AWS 服务的 Node.js 中开发 lambda。此外,这些 lambda 使用 API Gateway 调用另一个 lambda,其中 X 调用类型是异步调用的事件。

关于我应该选择哪种方法在本地运行这些 lambda 的任何建议:

  1. 我应该创建一个无服务器项目,其中无服务器离线插件如
    • serverless- s3 -local
    • 无服务器-发电机-本地
    • 无服务器离线-ssm
    • 无服务器离线 - dynamodb

所以当这个项目被执行时,它将在本地机器的特定端口上运行这些服务。

  1. 使用SAM 本地

    • 为此,我需要编写一个 sam 模板,因为目前我使用的是 serverless.com 框架,其中有 serverless.yml 而不是 sam 模板。
    • 还有 serverless-sam 插件可以将 serverless.yml 导出到 sam 模板,但是,对于 serverless.yml 中的少数部分,它会引发错误,因为对于少数基础构建,我们使用 serverless.yml 中的 terraform 执行输出。
    • 此 terraform 不适用于本地。所以基本上我没有选择使用 serverless-sam 插件的导出功能。我需要创建一个单独的项目,该项目将具有包含所有相关 AWS 服务规范的 sam 模板。
  2. 使用 Python Moto 库:https ://github.com/spulec/moto#stand-alone-server-mode

提前致谢

0 投票
1 回答
101 浏览

serverless - 为什么 serverless-offline 为处理程序重新执行我的整个 js 文件?

我正在apollo-server-lambda本地运行 using serverless-offline. 即使处理程序被导出一次,无服务器离线代码也会为每个请求完全重新创建 ApolloServer(这导致我的 knex 创建新的数据库连接并泄漏它们)。我希望它保持相同的 ApolloServer。

如何让无服务器离线以在调用之间保持相同的 js 实例?

我猜这可以通过遵循任何类型的无服务器离线示例来重现。这是一个例子:

https://medium.com/@gannochenko/how-to-use-graphql-apollo-server-with-serverless-606430ad94b3

0 投票
0 回答
335 浏览

typescript - 如何在我的节点项目中离线运行无服务器?

我是无服务器的长期用户,但只是在我当前的项目中开始使用这个离线插件。当前项目是一个使用 Apollo 和 TypeORM 的 Node GQL 服务器,最终将部署到 AWS Lambda,但在构建过程中目前仅在本地。

我的问题是我无法运行该函数,因为每次尝试在浏览器中运行处理程序时都会出现以下错误:

我查看了 .build 目录,它看起来都不错(没有导入),所以不确定这是以某种方式试图加载原始 ts 文件还是这是一个红鲱鱼。我也不确定这是离线问题还是打字稿或什么,只是在过去几个小时看了这个之后,不知道接下来要看什么。我确实有其他几个使用无服务器和打字稿的项目可以正确部署并使用本地处理程序正确运行,只是之前没有使用无服务器离线,所以不确定我是否配置错误或做错了什么。

我的环境是节点 12.16.2 上的 macOS Catalina。我目前正在运行 serverless 1.67.3、serverless-offline 6.1.4、serverless-plugin-typescript 1.1.9 和 typescript 3.8.3。很高兴提供所需的更多细节,因为我不确定下一步该尝试什么。谢谢!

0 投票
0 回答
557 浏览

node.js - 离线:授权响应不包括principalId:(λ:授权)在aws lambda中使用节点无服务器离线

我是 node 和 AWS lambda 的新手,我想在本地运行所有 API 端点,所以我正在使用所有有效凭据访问受保护的路由,但仍然收到此错误。

离线:授权响应不包含 principalId: (λ: authorize) ,

任何解决方案?

0 投票
0 回答
106 浏览

node.js - 在本地执行 lambda 函数时无法获取 NodeJS 路由获取页面未找到响应

我目前正在开发部署为 AWS Lambda 函数的 Node.JS 应用程序。当我尝试在本地访问路由时,它会以找不到页面进行响应。我列出了不同功能的不同配置文件。有些是公共路线,有些是受保护的路线。此问题仅发生在受保护的路由上。

我的配置文件: course.yml

从上面的配置文件中读取的 serverless.yml 文件:

虽然这不是受保护的路线,但我仍然面临这个问题。任何帮助将非常感激。

0 投票
1 回答
986 浏览

azure-functions - 无服务器 Azure 离线:值不能为空。(参数“提供者”)

我第一次尝试使用无服务器功能。更具体地说,我是在编写一个我想在天蓝色云上部署的 nodejs12 函数。

我为此使用无服务器。当尝试使用本地运行默认生成的函数(你好和再见)sls offline时,我总是收到以下错误:

Value cannot be null. (Parameter 'provider')

虽然我确定这不为空,但您可以在我的 serverless.yml 中看到:

不知道这里有什么问题?我正在使用最新版本的serverless (1.71.3)andserverless-azure-functions (2.0.2)azure-functions-core-tools (2.7.2508)

您可以在此处找到完整的输出日志。

编辑 1:即使使用核心工具版本 3,它也不起作用。我犯了同样的错误。

编辑2:我发现了这个问题,但是清理缓存对我不起作用。我也在 MacOS Catalina 上。

0 投票
0 回答
714 浏览

python - serverless-offline 不能同时运行 Node 和 Python 运行时

当我serverless offline同时使用 Node 和 Python 运行时运行时,在访问 Python 端点时出现以下错误:

我可以成功点击 Node 运行时。

如果我改为运行serverless offline --location .,我能够成功转到 Python 端点,但 Node 端点给了我这个错误

有没有办法同时离线运行?我可以部署两个运行时并且它可以工作,它只是无服务器离线,不起作用。源文件如下。

PS:我在serverless-offline repo 上创建了一个问题。

示例代码

  • 文件:serverless.yml
  • 文件:webpack.config.js
  • 文件:utils.ts
  • 文件:utilsPy.py
0 投票
1 回答
947 浏览

python - 如何在无服务器离线的子目录中引用处理程序?

视窗 10 64 位

节点 v12.16.3

无服务器 1.71.3

无服务器离线 6.1.7

目录

嗨,我目前正在尝试使用 serverless-offline 在本地测试两个 lambda 函数。它适用于根目录中的处理程序,但似乎 serverless-offline 无法引用子目录中的其他处理程序..

如何在子目录中引用处理程序?

PS:此配置在部署到 AWS LAMBDA 时有效。我可以发布两条路径。

当我尝试发布 hello2 时出错:

[离线] 正在加载处理程序... (C:\Users\my_user\Desktop\serverless-offline\sub\sub_handler) Traceback(最近一次调用最后):
文件 C:\Users\my_user\Desktop\serverless-offline\node_modules\ serverless-offline\dist\lambda\handler-runner\python-runner\invoke.py",第 75 行,在

第 126 行,在 import_module 中返回 _bootstrap._gcd_import(name[level:], package, level) 文件“”,第 994 行,在 _gcd_import

ModuleNotFoundError:没有名为“sub\sub_handler”的模块

serverless.yml

0 投票
1 回答
584 浏览

aws-lambda - “不支持的媒体类型”使用无服务器离线

我正在处理一个小型无服务器离线分配,当尝试在另一个中调用一个 lambda 函数时出现错误 Unsupported Media Type。

我找到了一个解决方案,但是当我尝试应用于我的项目时不起作用:链接中的所有详细信息都在这里。云任何人都可以帮助我

https://github.com/dherault/serverless-offline/issues/1005#issue-632401297