Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Nodejs – 从另一个lambda函数中调用AWS.Lambda函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下函数用于从我的代码调用Lambda函数.

但是,当我尝试在Lambda函数中使用它时,我收到以下错误

AWS lambda undefined 0.27s 3 retries] invoke({ FunctionName: 'my-function-name',InvocationType: 'requestResponse',LogType: 'Tail',Payload: <Buffer > })

如何在Lambda函数调用Lambda函数

我的功能

'use Strict';

var AWS = require("aws-sdk");

var lambda = new AWs.Lambda({
    apiVersion: '2015-03-31',endpoint: 'https://lambda.' + process.env.DYNAMODB_REGION + '.amazonaws.com',logger: console
});

var lambdaHandler = {};

// @var payload - type:string
// @var functionName - type:string
lambdaHandler.invokeFunction = function (payload,functionName,callBACk) {

    var params = {
        FunctionName: functionName,/* required */
        InvocationType: "requestResponse",LogType: "Tail",Payload: new Buffer(payload,'utf8')
    };

    var lambdarequestObj = lambda.invoke(params);

    lambdarequestObj.on('success',function(responsE) {
        console.log(response.data);
    });

    lambdarequestObj.on('error',function(responsE) {
        console.log(response.error.messagE);
    });

    lambdarequestObj.on('complete',function(responsE) {
        console.log('Complete');
    });

    lambdarequestObj.send();

    callBACk();
};

module.exports = lambdaHandler;

解决方法

使用每个Lambda中可用的aws-sdk,从另一个Lambda函数调用Lambda函数非常简单.

Lambda_A调用Lambda_B
使用包含单个参数名称的Payload:’Alex’.
Lambda_B用Payload响应:“Hello Alex”.

首先创建需要名称属性的Lambda_B
关于事件参数
使用“Hello”event.name响应请求:

Lambda_B

exports.handler = function(event,context) {
  console.log('Lambda B Received event:',JSON.Stringify(event,null,2));
  context.succeed('Hello ' + event.Name);
};

确保为Lambda_B和Lambda_A提供相同的角色.
例如:创建一个名为lambdaexecute的角色,它同时具有AWSLambdaExecute和
AWSLambdaBasicExecutionRole(由于某种原因,两者都是必需的):

Lambda_A

var AWS = require('aws-sdk');
AWs.config.region = 'eu-West-1';
var lambda = new AWs.Lambda();

exports.handler = function(event,context) {
  var params = {
    FunctionName: 'Lambda_B',// the lambda function we are going to invoke
    InvocationType: 'requestResponse',Payload: '{ "name" : "Alex" }'
  };

  lambda.invoke(params,function(err,data) {
    if (err) {
      context.fail(err);
    } else {
      context.succeed('Lambda_B said '+ data.Payload);
    }
  })
};

保存这两个Lambda函数后,测试运行Lambda_A:

一旦你有基本的intra-lambdda调用工作,你可以很容易地扩展它以调用更精细的Lambda函数.

大佬总结

以上是大佬教程为你收集整理的node.js – Nodejs – 从另一个lambda函数中调用AWS.Lambda函数全部内容,希望文章能够帮你解决node.js – Nodejs – 从另一个lambda函数中调用AWS.Lambda函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。