Я очень новичок в node.js, поэтому я думаю, что мне здесь не хватает чего-то очевидного.
Я просто пытаюсь получить список очередей SQS, используя aws-sdk, и вернуть их из модуля, чтобы они были доступны для другого кода. list_queues
- это рассматриваемая функция.
Приведенный ниже код работает до некоторой степени, я вижу журнал «успеха» и журнал массива строк всех моих очередей, однако функция не возвращает этот массив вызывающей стороне, и я не понимаю, почему.
const AWS = require('aws-sdk');
AWS.config.update({region: 'eu-west-1'});
var sqs;
var sts = new AWS.STS();
sts.assumeRole({
RoleArn: 'arn:aws:iam::xxxxx:role/UserRole',
RoleSessionName: 'NodeDeveloperRoleSession'
}, function(err, data) {
if (err) { // an error occurred
console.log('Cannot assume role :(');
console.log(err, err.stack);
} else { // successful response
console.log('Assumed role success :)');
AWS.config.update({
accessKeyId: data.Credentials.AccessKeyId,
secretAccessKey: data.Credentials.SecretAccessKey,
sessionToken: data.Credentials.SessionToken
});
sqs = new AWS.SQS({apiVersion: '2012-11-05'});
}
});
exports.list_queues = function() {
sqs.listQueues({}, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("success");
console.log(data.QueueUrls);
return data.QueueUrls;
}
});
}
Любая помощь приветствуется