我正在创建AWS Lambda脚本以检索我的AWS账户的信息。目前我在函数3中遇到问题,我想检索具有策略的用户,在这种情况下,我运行方法来检索列表用户,然后运行该方法以根据用户输入检索策略将它发送到数组到回调。问题是回调是空的。我已经通过console.log(userpolicies)进行了测试;并且在第二种方法中没问题但是当它超出第二种方法时,userpolicies是空白的。
我知道问题是因为我在同一个功能中有两个aws方法,但我不知道如何解决。
你有什么建议吗?
提前致谢。
var AWS = require('aws-sdk');
var async = require('async');
var stackoverflow = (event, context, callback) => {
var iam = new AWS.IAM();
async.series([
//function1
function(callback) {
iam.listGroups(function(err, data) {
if (err) {
callback(err);
} else
callback(null, data);
});
},
//function2
function(callback) {
iam.listPolicies(function(err, data) {
if (err) {
callback(err);
} else
callback(null, data);
});
},
//function3
function(callback) {
var userpolicies = [];
iam.listUsers(function(err,data) {
if (err)
console.log(err);
else
for (var i = 0; i < data.Users.length; i++) {
var params = {UserName: data.Users[i].UserName};
iam.listAttachedUserPolicies(params, function(err1, data1){
if (err1)
console.log(err1);
else
for (var j = 0; j < data1.AttachedPolicies.length; j ++) {
var infopolicies = '{"PolicyName":"'+data1.AttachedPolicies[j].PolicyName+'"}';
var infopoliciesjson = JSON.parse(infopolicies);
userpolicies.push(infopoliciesjson);
}
});
}
callback(null, userpolicies);
});
}
], callback);
};
exports.handler = stackoverflow;