我目前正在构建所有的JavaScript前端代码,以将其放在NodeJS上的AWS上。 我的请求链如下:
event
值为空,所以什么也不会发生...(2)(3)有人对事件为何为空传递有想法吗?我在做错什么吗?
代码块1:
API.post("notes", "/upload", {
test: {
"userId": toto['userId'],
"noteId": toto['noteId']
}
});
代码块2:
import AWS from "aws-sdk";
import { success, failure } from "./libs/response-lib";
export function main(event, context, callback) {
var lambda = new AWS.Lambda({
region: 'us-east-1'
});
lambda.invoke({
FunctionName: 'miseajour',
InvocationType: 'RequestResponse',
Payload: event.test
}, function(error, data) {
if (error) {
callback(null, failure({error: error}));
} else if(data){
callback(null, success(data));
}
});
}
答案 0 :(得分:0)
AWS JavaScript SDK的invoke
函数期望Payload
属性上有一个缓冲区,类型数组,Blob或字符串。您可以在SDK documentation site上签出。这是invoke
方法的整个接口,摘自该链接:
var params = {
FunctionName: 'STRING_VALUE', /* required */
ClientContext: 'STRING_VALUE',
InvocationType: Event | RequestResponse | DryRun,
LogType: None | Tail,
Payload: Buffer.from('...') || 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */,
Qualifier: 'STRING_VALUE'
};
lambda.invoke(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
在您的情况下,您正在传递一个对象。尝试先使用string
将其转换为JSON.stringify
。