我有node.js文件(即abc.js
),当我在我的node.js编辑器中运行时,它会给出输出。我想在AWS Lambda
.For中运行相同的文件,我创建了一个lambda并将abc.js
移到那里。为了运行,我似乎需要在handler.js中实现我的abc.js
文件(i.e.in lambda way意味着回调等)。
有没有办法从handler.js
触发abc.js
,而不是在handler.js
中再次实现相同的东西
检查了上面的用例,但在谷歌上没有找到太多。
已更新
我的abc.js文件
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({
region: "ap-south-1"
});
// Create S3 service object
s3 = new AWS.S3();
var params= {};
s3.listBuckets(params, bucketList);
function bucketList(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else
{
console.log(data)
}
}
我在lambda中的handler.js,并根据我对您的答案的解释修改它。
exports.handler = async (event) => {
const abc = require('./abc.js');
// TODO implement
abc.bucketList();
};
这就是我得到的错误
Response:
{
"errorMessage": "abc.bucketList is not a function",
"errorType": "TypeError",
"stackTrace": [
"exports.handler (/var/task/index.js:5:5)"
]
}
任何帮助都是非常感谢的。
发布于 2018-09-14 01:52:28
需要你的文件
const abc = require('./abc.js');
并在处理函数中调用您的代码
abc.yourExportedMethod();
发布于 2018-09-14 08:20:50
您的abc.js文件中存在一些问题。
试试下面这段代码:
const abc = async function()
{
try
{
const AWS = require('aws-sdk');
let s3 = new AWS.S3({region: "ap-south-1", apiVersion: '2006-03-01' });
let params= {};
const s3Response = await s3.listBuckets(params).promise();
console.log(s3Response); // your list of buckets
}
catch (ex)
{
console.error(ex);
}
}
export default abc;
发布于 2019-11-05 19:03:14
在abc.js的底部添加以下行
exports.bucketList = bucketList
剩下的就会像你期望的那样工作。
https://stackoverflow.com/questions/52318090
复制相似问题