node.js - 从另一个 lambda 异步调用 aws lambda

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

我需要从另一个 lambda 异步调用 aws lambda。我有一个用于同步调用的工作代码。

exports.handler = (event, context, callback) => {
    var aws = require('aws-sdk');
    var lambda = new aws.Lambda({
        region: 'myregion' //change to your region
    });
    console.log("lambda invoke started");
    lambda.invoke({
        FunctionName: 'testLambda',
        Payload: JSON.stringify(event, null, 2) // pass params
    }, function (error, data) {
        if (error) {
            console.log("error");
            callback(null, 'hello world');
        }
        else {
            console.log("lambda invoke end");
            callback(null, 'hello world');
        }
    });
}

但就我而言,“testLambda”是一个耗时的函数。因为我需要在调用“testLambda”函数后退出。然后代码像这样更新

exports.handler = (event, context, callback) => {
    var aws = require('aws-sdk');
    var lambda = new aws.Lambda({
        region: 'myregion' //change to your region
    });
    console.log("lambda invoke started");
    lambda.invoke({
        FunctionName: 'testLambda',
        Payload: JSON.stringify(event, null, 2) // pass params
    });
    console.log("lambda invoke end");
    callback(null, 'hello world');
}

它正确返回消息。但是我的“testLambda”函数没有被调用(没有为测试 lambda 生成云监视日志)。与此代码相关的问题是什么。

最佳答案

根据 the Lambda invoke() documentation ,您将看到默认情况下使用 RequestResponse 调用类型调用 Lambda 函数。要异步调用函数,您需要指定 Event 调用类型,如下所示:

lambda.invoke({
    FunctionName: 'testLambda',
    InvocationType: 'Event',
    Payload: JSON.stringify(event, null, 2)
},function(err,data){});

关于node.js - 从另一个 lambda 异步调用 aws lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39126606/

相关文章:

node.js - 错误 : self signed certificate Node 12 app on Heroku

php - 有没有办法在 php 中使用 Node js 库?

node.js - IBM Watson Conversation - 无法将 node.js 连接到 Watson 对话

javascript - JHipster - 函数完成后执行代码

Node.js Streams on(end) 在异步 on(readable) 完成之前完成

node.js - 导入 Node.js 模块函数,但不调用它

python - 我将如何使用 boto3 在 s3 存储桶上的 aws 文件上传成功响应?

Mysql5.5迁移至RDS/Aurora

asp.net-mvc-3 - AWS : EC2 micro, 不足以用于 .NET MVC 3 应用程序?

javascript - 如果我明确返回一个 Promise,我应该定义异步函数吗?