AWS Lambda Javascript SDK, когда я получаю ошибку с IAM SDK, для обратного вызова устанавливается значение undefined. Когда возникает ошибка с вызовом iam.listAttachedUserPolices, я получаю сообщение об ошибке с обратным вызовом. Если нет ошибки, я не получаю эту ошибку обратного вызова. Есть идеи?
TypeError: callback is not a function at Response
'use strict';
let AWS = require("aws-sdk");
let ddb = new AWS.DynamoDB({
apiVersion: '2012-10-08',
region: process.env.DDB_REGION || 'us-east-1'
});
let utils = require('utils');
module.exports.lab1 = (event, context, callback) => {
...
let params = {
...
}
};
let iam:any;
try {
iam = new AWS.IAM({
accessKeyId: access_key,
secretAccessKey: secret_key,
region: process.env.DDB_REGION || 'us-east-1'
});
} catch (e) {
console.log('ERROR: ', e)
console.log('Failed verification 1');
utils.lab(ddb, false ,cogid, callback);
return;
}
ddb.putItem(params, function(err, data) {
if (err) {
console.log('CALLBAKC TYPE1 ', typeof callback);
utils.error(500, "Failed to create user." + err, callback );
} else {
let iam_params = {
UserName: 'test_user', /* required */
};
iam.listAttachedUserPolicies(iam_params, function (err2, data) {
context.callbackWaitsForEmptyEventLoop = false;
if (err2) {
// Если мы получим ошибку здесь, обратный вызов обнаружится // неопределенным в функции utils. если мы этого не сделаем, это будет отображаться как функция.
console.log('Failed verification 4');
console.log(err2, err2.stack);
console.log('CALLBAKC TYPE2 ', typeof callback);
обратный вызов здесь не определен, но в случае успеха это функция
utils.lab(ddb, false, cogid, callback);
}
else {
...
Успех дела работает
}
});
}
});
};