标签: serverless-framework-offline

serverless-offline 可选路径参数

我正在尝试使用可选参数设置 GET 请求,但是当我没有可选参数的情况下在本地调用 url 时出现错误。不过,它在 lambda 上在线运行良好。我做错了什么?

我将无服务器版本 1.24.1 与无服务器离线插件版本 3.16.0 一起使用

这是我在serverless.yml 中的请求定义:

functions:
getitems:
    handler: lambda.handler
    events:
      - http:
            path: item/store/{storeid}/{itemstatus}
            method: get
            cors: true
            request:
                parameters:
                  paths:
                    storeid: true
                    itemstatus: false
Run Code Online (Sandbox Code Playgroud)

这个网址有效:

http://localhost:3000/item/store/123456/used
Run Code Online (Sandbox Code Playgroud)

这不

http://localhost:3000/item/store/123456
Run Code Online (Sandbox Code Playgroud)

并给我这个输出

{
   statusCode: 404,
   error: "Serverless-offline: route not found.",
   currentRoute: "get - /item/store/123456",
   existingRoutes: [
       "get - item/store/{storeid}/{itemstatus}"
   ]
}
Run Code Online (Sandbox Code Playgroud)

非常感谢

node.js serverless-framework serverless-framework-offline

6
推荐指数
2
解决办法
3700
查看次数

Serverless 获取本地函数列表

设想

我正在为本地 Lambda 输出编写单元测试。我不想手动输入所有不同 lambda 函数的名称,而是想要动态生成列表。

sls deploy list functions
Run Code Online (Sandbox Code Playgroud)

将返回部署到 aws 的函数列表,但不返回本地无服务器环境中的函数列表

问题

如何获取本地函数列表?

帮助菜单对于如何运行本地函数很有用,但对于组合本地函数列表却没有帮助。

$ sls --help

Commands
* You can run commands with "serverless" or the shortcut "sls"
* Pass "--verbose" to this command to get in-depth plugin info
* Pass "--no-color" to disable CLI colors
* Pass "--help" after any <command> for contextual help

Framework
* Documentation: https://serverless.com/framework/docs/

config ........................ Configure Serverless
config credentials ............ Configures a new provider profile for the Serverless Framework
create ........................ …
Run Code Online (Sandbox Code Playgroud)

aws-lambda serverless-framework serverless serverless-framework-offline

6
推荐指数
1
解决办法
2913
查看次数

CORS - 状态 200,但 Chrome 开发者工具控制台中出现错误

我遇到了 CORS 问题,问题是我的代码已执行(状态 200),但 Google Chrome 开发者控制台中出现错误。

我的代码:

function callUrl(url) {
    var xmlhttp = null;

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (xmlhttp !== null) {
        xmlhttp.open("POST", url, true);
        xmlhttp.withCredentials = true;
        xmlhttp.send(JSON.stringify({
        }));
    } else {
        console.error("Your browser does not support XMLHTTP.");
    }
}

callUrl('https://www.website.com/tracking?etc...');
Run Code Online (Sandbox Code Playgroud)

XMLHttpRequest 无法加载https://www.website.com/tracking?。当请求的凭据模式为“include”时,响应中“Access-Control-Allow-Origin”标头的值不能是通配符“*”。因此,不允许访问来源“ http://localhost:8888 ”。XMLHttpRequest 发起的请求的凭据模式由 withCredentials 属性控制。

服务器配置:

"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true,
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest cors serverless serverless-framework-offline

5
推荐指数
1
解决办法
4628
查看次数

使用 Typescript 和 Serverless Offline 时,VSCode 断点被禁用(灰显)

我正在使用无服务器框架开发一些 Lambda 函数。无服务框架已在全球安装。

我正在使用 Typescript 和 serverless-webpack。

我也在使用 serverless-offline 在本地进行测试。

一切工作正常,除非我尝试从 VSCode 中进行调试。问题是,一旦我从 VSCode 的调试工具启动无服务器离线,所有断点都会变灰。

这是我的配置文件

包.json

{
  "name": "backend-serverless",
  "version": "1.0.0",
  "description": "serverless backend",
  "main": "handler.js",
  "scripts": {
    "test": "mocha -r ts-node/register transform/src/**/*.spec.ts src/**/**/*.spec.ts",
    "tsc": "tsc",
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/aws-lambda": "0.0.34",
    "@types/chai": "^4.1.2",
    "@types/mocha": "^5.0.0",
    "@types/node": "^9.6.0",
    "chai": "^4.1.2",
    "mocha": "^5.0.5",
    "serverless-offline": "^3.18.0",
    "serverless-webpack": "^5.1.1",
    "ts-loader": "^4.1.0",
    "ts-node": "^5.0.1",
    "typescript": "^2.7.2",
    "webpack": "^4.3.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

webpack.config.ts

const path = require('path');
const slsw = …
Run Code Online (Sandbox Code Playgroud)

typescript webpack visual-studio-code serverless-framework serverless-framework-offline

5
推荐指数
1
解决办法
8746
查看次数

如何使用另一个端口在Visual Studio Code中调试无服务器脱机?

我有两个无服务器脱机“服务器”,它们需要同时在本地运行。

因此,我需要更改其中一台服务器的端口。

我使用Visual Studio Code调试器运行服务器。服务器的配置位于launch.json文件中。

如何更改无服务器脱机应用程序的端口,以便可以使用VS Code调试器与另一个无服务器脱机应用程序并行运行?

port node.js visual-studio-code serverless serverless-framework-offline

4
推荐指数
2
解决办法
4152
查看次数

AWS-无服务器脱机框架上是否提供API密钥?

我使用无服务器脱机开发Web项目。

我需要API密钥才能访问无服务器 AWS Lamda上的资源。

我的服务提供者都有一个serverless.yml 。

Postman中,我访问了我的路由(http://127.0.0.1:3333/segments/UUID/test),并且没有任何错误(如Forbidden message),Lambda已执行...

test:
  handler: src/Api/segment.test
  events:
    - http:
        path: segments/{segmentUuid}/test
        method: post
        request:
          parameters:
            paths:
              segmentUuid: true
        private: true
Run Code Online (Sandbox Code Playgroud)

该路由不受私有保护。

yaml aws-lambda serverless-framework serverless serverless-framework-offline

3
推荐指数
1
解决办法
756
查看次数

在 lambda 函数中发送 JSON 响应时出现无服务器离线响应问题

var result = [{
                count : 10,
                data : [{"id":11,"id":22}]
               }];
var response = {
                statusCode: 200,
                count: result.length,
                body: result
            };
            callback(null, response);
Run Code Online (Sandbox Code Playgroud)

控制台错误

根据 API Gateway 规范,正文内容必须是字符串化的。检查您的 Lambda 响应并确保您在 body 对象上调用 JSON.stringify(YOUR_CONTENT)

node.js aws-lambda aws-api-gateway serverless-framework serverless-framework-offline

3
推荐指数
1
解决办法
4351
查看次数