根据请求调用Lambda函数;

时间:2016-08-19 12:40:29

标签: node.js amazon-web-services request aws-lambda

如何直接使用AWS API(不是aws-sdk)和node.js调用Lambda函数

var request = require('request');
var options = {
  url: 'https://lambda.eu-west-1.amazonaws.com/2015-03-31/functions/http/invocations'
, headers: {
'User-Agent': 'request'
  }
};
request.post(options, callback);

该示例返回{"message":"Missing Authentication Token"}

3 个答案:

答案 0 :(得分:0)

AWS SDK不仅仅是普通的HTTP请求。 AWS SDK HTTP请求包含API密钥,数字签名等。您应该坚持使用AWS SDKs代码,因为这是最有效的方法来启动和运行。

答案 1 :(得分:0)

您需要使用适当的AWS IAM凭据对请求进行签名并提供正确的Authorization标头。这个过程比较复杂,但是我看到你正在使用nodejs,所以我会链接到最好的npm模块,用你的凭证+ DIY请求签名的文档做请求签名......:

最佳模块: https://www.npmjs.com/package/aws4

原始签名HTTP的AWS文档: http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html

答案 2 :(得分:0)

const params = {
 FunctionName: 'MyLambdaFunction',
    Qualifier: 'my-alias',
    InvocationType: 'RequestResponse',
    Payload: JSON.stringify({hello: 'world'})
};

lambda.raw.invoke(params, (err, result) => {
    // handle the result
});

please find code from this link

https://github.com/SamVerschueren/aws-lambda-invoke