node.js - AWS Lambda 获取上下文消息

标签 node.js amazon-web-services aws-lambda

我正在使用来自 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);
    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 队列处理返回结果。如果您希望通过推出自己的解决方案来获得更多控制权,则过程非常简单:

  1. 创建 SQS 队列
  2. 让您的 Lambda 函数将其结果写入此队列
  3. 在您的客户端中,轮询队列以获取结果

关于node.js - AWS Lambda 获取上下文消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893615/

相关文章:

angularjs - Protractor sendKeys 不向文本框发送任何内容

javascript - 如何在 Node js中的异步函数内顺序执行代码

laravel 登录不适用于 cloudFront AWS 和证书管理器

javascript - 已声明使用 Node.js ('bucketName' 将文件上传到 Google Cloud Storage)

java - AWS Lambda RequestHandler 用于无效输出

javascript - node async 仅在 node-lambda 内部调用第一个函数

node.js - npm 错误! enoent ENOENT : no such file or directory, 打开 'C:\Users\...\package.json'

javascript - 如何自定义strapi图像上传以使用第三方库进行图像压缩?

amazon-web-services - SAM 部署因 Lambda 函数的大小问题而失败

amazon-web-services - AWS Amplify/CLI 与 AWS 移动中心