问题标签 [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 投票
4 回答
6391 浏览

serverless-framework - Serverless Offline:处理多个 API 网关

当您只有一个时,您可以使用无服务器框架和无服务器离线插件轻松调试您的无服务器应用程序,但是当您有多个 API 网关/服务时,您如何处理这种情况?

我应该serverless offline为每项服务运行,并在每个服务中配置不同的端口.yml吗?
并将该端口硬编码在环境变量中,以便我可以访问该端口(如果process.env.offline为真)?

0 投票
0 回答
1515 浏览

amazon-cognito - 在本地无服务器离线环境中未经授权调用 Lambda 函数

我正在尝试使用 Cognito、无服务器框架和无服务器离线插件测试 Lambda 函数的授权。

当我使用无服务器脱机在本地运行我的堆栈时,默认情况下所有请求都是授权的,我可以毫无问题地执行它们。

命令是serverless offline

不能做的是在本地测试未经授权的请求,当我使用参数时--noAuth,默认情况下请求仍然是授权的,这意味着我无法测试未经授权的访问场景。

使用serverless offline --noAuth

当我在本地开发时,如何针对未经授权的处理程序测试请求?

这是我的 yml:

0 投票
2 回答
7195 浏览

node.js - 找不到模块'source-map-support/register

我已经按照 webpack4 示例来设置配置:https ://github.com/serverless-heaven/serverless-webpack/tree/master/examples/babel-webpack-4 因为我收到错误“找不到模块源-地图支持/注册”。

我已经调查了已经创建的问题:

https://github.com/serverless-heaven/serverless-webpack/issues/357

https://github.com/serverless-heaven/serverless-webpack/issues/228

现在我的配置是:

.babelrc webpack.config.js: 包.json 无服务器.yml

我仍然面临同样的问题。它适用于 sls invoke local -f但是当使用sls deploy部署到 aws 时,它会在调用 API Url 时显示错误。

npm 版本:6.4.1

节点版本:v10.10.0

无服务器:1.30.3

0 投票
1 回答
4820 浏览

python - 无服务器离线:运行处理程序时出错,找不到模块

我一直在尝试使用serverless-offline/serverless-offline-python和一系列其他节点包(serverless-s3-local例如)为我编写的一些 lambdas 构建离线测试环境。

使用serverless-offline-python,我可以启动我的 python lambda 并手动调用每个函数:

这可行,但不能完全模拟 lambda 实际在做什么。理想情况下,我会模拟一个导入了新对象的 S3 存储桶,并且该操作将成为 lambda ( import-processor-stage-1) 的催化剂。

输入 serverless-s3-local

我已经用插件配置了一个非常棒的配置,但是由于某种原因,当serverless-s3-local我触发一个事件到我的 lambda 处理程序时,我收到了这个错误:

可悲的是,我知道这些插件还处于起步阶段(尤其是serverless-offline-python),但我很确定这应该是一个非常容易解决的问题。未找到的模块实际上存在于包中!我认为这是因为它是 Python 文件而不是 JS 文件。js脚本中有没有办法接受python文件?到目前为止,我已经尝试在代码库中serverless-offline替换所有引用,但我得到了同样的错误。serverless-offline-pythonserverless-s3-local

作为参考,这是我的serverless.yml文件(作为记录,处理程序文件可用,正确定位并且在手动调用它时工作正常):

任何和所有的帮助表示赞赏!感谢您的关注!


可以确认这适用于 js 环境。

0 投票
1 回答
2412 浏览

aws-api-gateway - API Gateway HTTP 代理与无服务器离线集成(不是 Lambda 代理)

我正在尝试使用无服务器离线在本地开发/模拟我的 API 网关。我的 API 网关充分利用了HTTP 代理集成。生产资源如下所示:

API 网关资源方法上的 HTTP 代理集成的屏幕截图

我根据一些文档和讨论创建了一个无服务器离线配置,这些文档和讨论说可以使用 Cloud Formation 配置定义 HTTP 代理集成:

为了我的目的,我已经调整了上述两个配置示例,见下文。

有什么提示,我可能在这里做错了吗?

对于上述配置,我得到了这个输出。显然,配置根本没有注册任何路由。

相关:我也在尝试使用 aws-sam 解决相同的问题,在以下帖子中 - API Gateway HTTP Proxy integration with aws-sam (NOT Lambda Proxy)

0 投票
0 回答
2023 浏览

aws-lambda - serverless-offline:API 网关的远程 Lambda 自定义授权方

我已经使用 CloudFormation 语法在我的 API Gateway 资源上声明了一个 HTTP 代理方法(在之前的这篇文章中有详细说明。)

我正在尝试附加一个“请求”类型的自定义授权方,它使用现有的 AWS Lambda 函数。无服务器文档有一个使用 CloudFormation 设置自定义授权者的不错示例。同时,serverless-offline 明确支持(源)请求范围的自定义授权。

在创建以下无服务器模板时,我已经密切交叉引用了AWS::ApiGateway::ResourceAWS::ApiGateway::Authorizer的相关 AWS CloudFormation 文档,以及相关的无服务器文档。但到目前为止,我没有从serverless-offline获得预期的输出或行为。

资源是在没有授权者的情况下创建的

当我启动以下无服务器配置时,没有为我的资源加载授权者。我看不到我的serverless.yml文件中有什么问题或缺失。你有什么建议吗?提前致谢!

serverless.yml

以下模板文件包括 APIG 资源和授权方配置。

有关的:

0 投票
0 回答
262 浏览

serverless - 在自定义授权错误的情况下,CORS 的多个 ORIGINS 不起作用

我在应用程序中启用了 CORS 并且有多个来源,它在正常请求和错误响应下工作正常。但是当我在自定义授权方中遇到一些错误或拒绝授权时。CORS 不适用于任何状态代码(4XX 或 5XX)。我不想使用 * 并且必须处理多个来源。我正在使用无服务器

这是来自 serverless.yml 的片段

如果我有多个来源,请您帮我找到解决方案。如果默认网关响应错误代码,如何处理多个来源

0 投票
1 回答
1654 浏览

node.js - SequelizeJS 无法连接到“我的”互联网上的 RDS 实例

我在 AWS Lambda 上启动并运行了一个 NodeJS/无服务器框架 API。它连接到工作正常的 AWS RDS,但是突然之间,它无法连接到我办公室互联网上的 RDS 实例。API 和数据库连接在我的家庭互联网甚至移动数据上都可以正常工作。

数据库连接错误

当部署在 AWS Lambda 和 EC2 实例(成功的数据库连接)上时,该 API 工作正常。安全组已为 PORT 3306 开放入站流量访问

数据库连接文件

尝试过的解决方案

  • 在remotemysql.com上设置一个虚拟数据库。API 连接到我办公室互联网上的数据库。
  • Ran 代码作为一个简单的 NodeJS 脚本。无法从本地计算机在办公室互联网上工作。在多台本地机器上试过。
  • 将简单的 NodeJS 代码部署到新的 EC2 实例。它连接到数据库 API 工作正常。
  • 删除 Sequelize 并使用 npm mysql包连接到 RDS 实例。使用办公室互联网从本地计算机连接到 RDS。
  • 使用办公室互联网从本地计算机上的 Laravel (PHP) 存储库连接到 RDS 实例。工作!
  • 更改了数据库连接配置设置。1) 获取时间增加到 1000000。2) 添加 ssl:true & dialectOptions{ ssl: "Amazon RDS" }。
  • 在 serverless.yml 文件中添加了子网 ID安全组 ID 。所以 lambda 和 RDS 实例在同一个 VPC 中。
  • 尝试了多个 RDS 实例。开发登台实例上的连接失败。
  • 为测试创建了新的 RDS 实例。它从办公室互联网上的本地机器连接到数据库(有时)。

你可以在这里找到回购。

0 投票
2 回答
4134 浏览

javascript - 使用 vscode 离线调试无服务器节点

我正在使用 VS Code 开发 AWS Lambda 函数,我开始使用无服务器框架和无服务器离线库,但是我无法使用 VS Code 的调试模式在本地调试代码。

我指的是许多网站,以下是其中之一: https ://medium.com/@OneMuppet_/debugging-lambada-functions-locally-in-vscode-with-actual-break-points-deee6235f590

我的项目结构如下:

在此处输入图像描述

Package.json

在此处输入图像描述

launch.json

在此处输入图像描述

开始调试时出现以下错误:

在此处输入图像描述

有人可以用正确的配置指导吗?

0 投票
1 回答
681 浏览

amazon-web-services - 向离线运行的 lambda 发出请求时如何使用计算机 IP 地址?

嗨,我正在尝试使用计算机的本地 IP 地址访问我的 lambda,但反复出现Connection refused错误。

但是,如果我使用:

http://127.0.0.1:3000/my-path

端点工作正常。

有人会对可能是什么问题有任何建议吗?

谢谢!