Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在node.js中的AWS lambda函数之间共享代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
似乎不可能传递一些在另一个AWS lambda函数中作为AWS lambda函数调用代码(包含数据和函数).

例如,使用此customcatonfigLambda:

var callBACkPayload = {};

callBACkPayload.fooData = 'fooFromData';
callBACkPayload.fooFunction = function() {return 'fooFromFunction'; };

exports.handler = (event,context,callBACk) => {
    callBACk(null,callBACkPayload);
};

当我在另一个AWS lambda函数调用之前的AWS lambda函数时,如下所示:

var AWS = require('aws-sdk');
AWs.config.update({accessKey: '123',secretAccessKey: 'abc',region: 'us-east-1' });
var lambda = new AWs.Lambda({region: 'us-east-1'});

exports.handler = (event,callBACk) => {
    var params = {FunctionName: 'customcatonfigLambda'};
    lambda.invoke(params,function(err,callBACkPayload) {
        if (err) {
            // do nothing
        }
        else {
            console.log('callBACkPayload:',JSON.Stringify(callBACkPayload,null,2));
        }
    });
};

然后我只能看到callBACkPayload.fooData而不是callBACkPayload.fooFunction.

如何在多个其他AWS lambda函数之间共享一些callBACkPayload.fooFunction?

解决方法

请参阅有关使用回调参数的文档:

> http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html#nodejs-prog-model-handler-callback

它说明了结果(代码中的callBACkPayload):

要兼容JSON.Stringify,你不能拥有任何功能.请参阅http://json.org/以查看什么是有效的JSON(仅限字符串,数字,对象,数组,true,false和null).

如果您希望在广义上在AWS Lambda函数之间共享代码,则必须在两者中都需要相同的Node模块,以便您可以为所有AWS Lamda处理程序提供一组通用函数.但是你不能在它们之间传递任意代码,因为它们无法在JSON.Stringify中存活.

作为测试,您可以尝试在浏览器中运行它:

var callBACkPayload = {};

callBACkPayload.fooData = 'fooFromData';
callBACkPayload.fooFunction = function() {return 'fooFromFunction'; };

alert(JSON.Stringify(callBACkPayload));

(见DEMO)
或节点中的这个:

var callBACkPayload = {};

callBACkPayload.fooData = 'fooFromData';
callBACkPayload.fooFunction = function() {return 'fooFromFunction'; };

console.log(JSON.Stringify(callBACkPayload));

并看到结果:

{"fooData":"fooFromData"}

在序列化过程中@L_673_24@了这些函数.

当然你可以这样做:

callBACkPayload.fooFunction
    = function() {return 'fooFromFunction'; }.toString();

并获得JSON结果:

{"fooData":"fooFromData","fooFunction":"function () {return 'fooFromFunction'; }"}

你理论上可以在另一端评估,但我不会真的推荐它.

大佬总结

以上是大佬教程为你收集整理的在node.js中的AWS lambda函数之间共享代码全部内容,希望文章能够帮你解决在node.js中的AWS lambda函数之间共享代码所遇到的程序开发问题。

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

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