从节点应用程序调用亚马逊lambda函数

我正在通过一个基本的AWS如何创build一个lambda函数:

http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser-create-test-function-create-function.html

在这个例子中,我们正在创build一个图像大小调整服务,触发它的一种方法是监听一些图像被推送到S3桶,然后执行lambda函数。

但我想了解如何从我的nodejs应用程序调用这个lambda函数,当用户发送一个图像到我的节点服务器,我发送这个图像到aws lambda通过REST API重新resize,然后接收新的图像位置为一个回应。

有什么我可以遵循的例子吗? 我对实际的调用部分更感兴趣,因为我已经启动了我的lambda服务。

谢谢

由于您使用的是node.js服务器,因此您可以直接使用AWS JavaScript SDK( https://www.npmjs.com/package/aws-sdk )来调用lambda。 这样你就不用担心使用API​​网关。

从您的服务器调用简单如下:

var AWS = require('aws-sdk'); // you shouldn't hardcode your keys in production! See http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html AWS.config.update({accessKeyId: 'akid', secretAccessKey: 'secret'}); var lambda = new AWS.Lambda(); var params = { FunctionName: 'myImageProcessingLambdaFn', /* required */ Payload: PAYLOAD_AS_A_STRING }; lambda.invoke(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response }); 

请参阅其他SDK文档: http : //docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html