我正在努力从ListFunctions获得任何不为null的响应。我在单个区域中有3个函数,并且在参数和AWS.config.region方面玩得相当好。我一直得到null作为回报,并且在控制台日志中,我什么也得不到。任何帮助将不胜感激!
let AWS = require('aws-sdk');
//AWS.config.region = 'ca-central-1';
let lambda = new AWS.Lambda({ "apiVersion": "2015-03-31" });
module.exports.handler = async (event, context) => {
let params = {
//MasterRegion: 'ALL',
//FunctionVersion: 'ALL',
MaxItems: 10
};
lambda.listFunctions(params, function(err,data) {
if(err){
console.log(err);
}
else {
console.log(data);
}
context.done(null, "function finished");
}
}
serverless.yml更改
provider:
name: aws
runtime: nodejs8.10
profile: [PROFILE_NAME]
region: [ca-central-1]
iamRoleStatements:
- Effect: "Allow"
Action:
- "lambda:*"
Resource:
- "*"
答案 0 :(得分:1)
使您的功能不异步。 当标记为异步并且处理程序函数返回时,lambda返回该值。您没有显式的返回值,但是如果函数在没有显式的返回值的情况下结束,则nodejs将返回undefined。
您还可以从使用回调功能切换
module.exports.handler = async (event, context) => {
let params = {
//MasterRegion: 'ALL',
//FunctionVersion: 'ALL',
MaxItems: 10
};
try {
let result = await lambda.listFunctions(params).promise() {
console.log(result);
} catch (err) {
console.log(err);
throw err; // this try catch isn't really necessary
}
return "function finished";
}