ins*_*ide 19 javascript amazon-web-services node.js aws-lambda
我将通过一个关于如何创建lambda函数的基本AWS:
在这个例子中,我们正在创建一个图像重新调整大小的服务,触发它的一种方法是监听一些图像被推送到S3存储桶然后执行lambda函数.
但我试图了解如何从我的nodejs应用程序调用此lambda函数,当用户将图像发送到我的节点服务器时,我通过REST API将此图像发送到aws lambda以重新调整大小,然后接收新的图像位置一个回应.
我能遵循什么样的例子吗?我对实际的调用部分更感兴趣,因为我已经启动并运行了我的lambda服务.
谢谢
Rya*_*yan 37
由于您使用的是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
});
Run Code Online (Sandbox Code Playgroud)
请参阅此处的其他SDK文档:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html
sdg*_*sdh 10
对于最新的JavaScript,这是一个更多的惯用语答案。
import AWS from 'aws-sdk';
const invokeLambda = (lambda, params) => new Promise((resolve, reject) => {
lambda.invoke(params, (error, data) => {
if (error) {
reject(error);
} else {
resolve(data);
}
});
});
const main = async () => {
// You shouldn't hard-code your keys in production!
// http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html
AWS.config.update({
accessKeyId: 'AWSAccessKeyId',
secretAccessKey: 'AWSAccessKeySecret',
region: 'eu-west-1',
});
const lambda = new AWS.Lambda();
const params = {
FunctionName: 'my-lambda-function',
Payload: JSON.stringify({
'x': 1,
'y': 2,
'z': 3,
}),
};
const result = await invokeLambda(lambda, params);
console.log('Success!');
console.log(result);
};
main().catch(error => console.error(error));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13665 次 |
| 最近记录: |