javascript - 如何使用 NodeJS 在本地测试 AWS Lambda 处理程序?

标签 javascript node.js aws-lambda serverless-framework

我正在关注 these创建在 Lambda 中执行的基本网络抓取工具的说明。我有编写 selenium 代码的经验,但没有使用 Node JS 的经验。我让项目在 Lambda 中运行,但是当我尝试在本地编辑项目以执行我想要的 selenium 代码时,它不起作用。当我运行 node index.js 时,exports.handler 中的任何内容都不会执行。我将如何在本地执行该项目?谢谢!

最佳答案

这是我做的:

index.js

exports.handler = async (event) => {
    console.log('hello world');

    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!')
    };

    return response;
};

package.json

"scripts": {
  "locally": "node -e \"console.log(require('./index').handler(require('./event.json')));\""
}

事件.json

{
  "Records": [
    {
      "eventVersion": "2.0",
      "eventSource": "aws:s3",
      "awsRegion": "eu-central-1",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
        "principalId": "AIDAJDPLRKLG7UEXAMPLE"
      },
      "requestParameters": {
        "sourceIPAddress": "127.0.0.1"
      },
      "responseElements": {
        "x-amz-request-id": "C3D13FE58DE4C810",
        "x-amz-id-2": "FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD"
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "testConfigRule",
        "bucket": {
          "name": "my-bucket",
          "ownerIdentity": {
            "principalId": "A3NL1KOZZKExample"
          },
          "arn": "arn:aws:s3:::my-bucket"
        },
        "object": {
          "key": "HelloWorld.jpg",
          "size": 1024,
          "eTag": "d41d8cd98f00b204e9800998ecf8427e",
          "versionId": "096fKKXTRTtl3on89fVO.nfljtsv6qko"
        }
      }
    }
  ]
}

外壳

npm run locally

输出

> node -e "console.log(require('./index').handler({}));"

hello world
Promise { { statusCode: 200, body: '"Hello from Lambda!"' } }

关于javascript - 如何使用 NodeJS 在本地测试 AWS Lambda 处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52019039/

相关文章:

javascript - 如何继承javascript匿名函数并分配给变量?

javascript - Node JS 匿名函数和回调

java - API Gateway Lambda 集成 SelectionPattern 不匹配

amazon-s3 - 使用 CloudFormation 在 S3 存储桶中创建 Lambda 通知

javascript - 如何将 Cognito 与生成的 Javascript SDK 结合使用?

javascript - Datalist 数组的 .index 为 "undefined"

javascript - Mongo 聚合游标和计数

javascript - 如何在 JavaScript 中检测浏览器 "minimized"和 "maximized"状态?

node.js - 如何在 NodeJs 中扩展 express js res 对象

node.js - Node.js 中的 AES 加密和 Scala 中的解密