2016-08-19 97 views
0

如何直接使用AWS API(未AWS-SDK)调用lambda函数和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"}

+2

为什么不使用AWS SDK?否则,为什么不先通过API网关公开? –

+0

我的假设是“aws-sdk”与http完全相同,无论如何它是5.1 mb未压缩的(这样的大模块可能很重,我不知道)。由于预算/学分限制,不使用API​​网关。 – Radoslav

+2

AWS开发工具包使用您提供的IAM凭证对请求进行签名,以使其得到授权。在没有SDK的情况下自己做这件事非常痛苦。 –

回答

0

AWS SDK做得比只是普通HTTP请求更多。 AWS SDK HTTP请求包含API密钥,数字签名等。你应该坚持使用AWS SDKs与你的代码,因为它是最有效的方式来启动和运行。

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 
+0

它为我工作。 –