【发布时间】:2022-01-03 22:56:10
【问题描述】:
我有一个在亚马逊 AWS 云上运行的 lambda 函数。现在我想制作一个 node.js 脚本,将数据从我的本地系统发送到 aws lambda,并使用回调函数打印从我的 node.js 代码发送的相同值。
现在,为了从我的 node.js 代码触发我的 lambda 函数,我使用以下代码:
var AWS = require('aws-sdk');
// you shouldn't hardcode your keys in production! See http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html
AWS.config.update({accessKeyId: 'myaccessKeyId', secretAccessKey: 'mysecretAccessKey',region:'region',correctClockSkew: true});
var lambda = new AWS.Lambda({apiVersion: '2015-03-31'});
var params = {
FunctionName: 'myLambdaFunction', /* required */
Payload: 'true',
};
lambda.invoke(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
我是这个 lambda 函数概念的新手,所以任何人都可以通过告诉我如何从上述代码将数据发送到所需的 lambda 函数来帮助我吗?使用上面的代码,我可以触发我的 lambda 函数,并且无论我在其有效负载中打印什么,我都可以进入我的节点应用程序。
当我在有效负载中使用自定义字符串值 ( other than 'true', 'false' or 'null') 并且我使用的 api 版本是:apiVersion: '2015-03-31' 并且最近安装了 aws-sdk 节点模块时,我收到以下错误,所以我猜它是最新的。
错误信息:
{ InvalidRequestContentException: Could not parse request body into json: Unrecognized token 'custom_data': was expecting ('true', 'false' or 'null')
at [Source: [B@7d2214ec; line: 1, column: 23]
at Object.extractError (/usr/lib/node_modules/aws-sdk/lib/protocol/json.js:43:27)
at Request.extractError (/usr/lib/node_modules/aws-sdk/lib/protocol/rest_json.js:37:8)
at Request.callListeners (/usr/lib/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/usr/lib/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/usr/lib/node_modules/aws-sdk/lib/request.js:668:14)
at Request.transition (/usr/lib/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/usr/lib/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /usr/lib/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/usr/lib/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/usr/lib/node_modules/aws-sdk/lib/request.js:670:12)
message: 'Could not parse request body into json: Unrecognized token \'custom_data\': was expecting (\'true\', \'false\' or \'null\')\n at [Source: [B@7d2214ec; line: 1, column: 23]',
code: 'InvalidRequestContentException',
time: 2017-01-16T16:48:38.514Z,
requestId: '3bee0e2c-dd39-11e6-9df3-5f7a24f73b9d',
statusCode: 400,
retryable: false,
retryDelay: 26.112914258191733 } 'InvalidRequestContentException: Could not parse request body into json: Unrecognized token \'custom_data\': was expecting (\'true\', \'false\' or \'null\')\n at [Source: [B@7d2214ec; line: 1, column: 23]\n at Object.extractError (/usr/lib/node_modules/aws-sdk/lib/protocol/json.js:43:27)\n at Request.extractError (/usr/lib/node_modules/aws-sdk/lib/protocol/rest_json.js:37:8)\n at Request.callListeners (/usr/lib/node_modules/aws-sdk/lib/sequential_executor.js:105:20)\n at Request.emit (/usr/lib/node_modules/aws-sdk/lib/sequential_executor.js:77:10)\n at Request.emit (/usr/lib/node_modules/aws-sdk/lib/request.js:668:14)\n at Request.transition (/usr/lib/node_modules/aws-sdk/lib/request.js:22:10)\n at AcceptorStateMachine.runTo (/usr/lib/node_modules/aws-sdk/lib/state_machine.js:14:12)\n at /usr/lib/node_modules/aws-sdk/lib/state_machine.js:26:10\n at Request.<anonymous> (/usr/lib/node_modules/aws-sdk/lib/request.js:38:9)\n at Request.<anonymous> (/usr/lib/node_modules/aws-sdk/lib/request.js:670:12)'
请帮忙。
【问题讨论】:
标签: node.js amazon-web-services aws-lambda aws-sdk payload