完全有可能,这正是 API Gateway 正在做的事情。
您打算直接请求 Express Lambda 的应用程序必须
因此,假设您拥有本地凭据并且您的本地用户有权调用您的 lambda 函数,您可以通过以下方式在本地进行简单测试:
payload.json
{
"httpMethod": "POST",
"path": "/PATH/TO/YOUR/ROUTE",
"headers": { "content-type": "text/plain" },
"body": "{\"version\":\"2.1.0\"}",
"isBase64Encoded": false
}
lambda-caller.js
const region = process.env.AWS_REGION || 'us-west-2'
const lambda = new (require('aws-sdk/clients/lambda'))({ region })
const Payload = require('fs').readFileSync('payload.json')
const FunctionName = 'your-function-name'
lambda.invoke({ Payload, FunctionName }).promise().then(console.log)
然后只需调用您的节点应用程序
node lambda-caller.js
应该打印这样的东西
{
StatusCode: 200,
ExecutedVersion: '$LATEST',
Payload: '{"statusCode":202,"body":"{\\"count\\":1,\\"success\\":1}","headers":{"content-type":"application/json; charset=utf-8","content-length":"23","date":"Thu, 21 May 2020 00:29:33 GMT","connection":"keep-alive"},"isBase64Encoded":false}'
}