我正在使用AWS控制台的测试功能: console.log('Loading event');exports.handler = function(event, context) { console.log('value1 = ' + event.key1); console.log('value2 = ' + event.key2); console.log('value3 = ' + event.key3); con
console.log('Loading event'); exports.handler = function(event, context) { console.log('value1 = ' + event.key1); console.log('value2 = ' + event.key2); console.log('value3 = ' + event.key3); context.done(null, 'Hello World'); // SUCCESS with message };
并在nodejs中调用它,如下所示:
var params = { FunctionName: 'MY_FUNCTION_NAME', /* required */ InvokeArgs: JSON.stringify({ "key1": "value1", "key2": "value2", "key3": "value3" }) }; lambda.invokeAsync(params, function(err, data) { if (err) { // an error occurred console.log(err, err.stack); return cb(err); } // successful response console.log(data); });
一切正常:
//Console Output { Status: 202 }
但我期待从context.done(null,’Message’)收到消息……
知道如何获取消息吗?
正如Eric所提到的,目前Lambda没有提供REST端点来运行该函数并返回其结果,但可能在未来.现在,您最好的选择是使用像lambdaws这样的库,它为您包装函数部署和执行,并通过SQS队列处理返回结果.如果您想通过滚动自己的解决方案来获得更多控制权,那么这个过程非常简单:
>创建SQS队列>让Lambda函数将其结果写入此队列>在您的客户端中,轮询队列以获得结果