一尘不染

从节点应用程序调用Amazon Lambda函数

node.js

我正在通过有关如何创建lambda函数的基本AWS:

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

在此示例中,我们正在创建图像调整大小服务,触发该服务的一种方法是侦听一些要推送到S3存储桶的图像,然后执行lambda函数。

但是我试图理解如何从我的nodejs应用程序调用此lambda函数,当用户将图像发送到我的节点服务器时,我通过REST API将该图像发送到aws
lambda进行调整大小,然后以一个回应。

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

谢谢


阅读 251

收藏
2020-07-07

共1个答案

一尘不染

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

从服务器调用很简单:

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

2020-07-07