Это мой первый вопрос здесь :-)
Мне нужно перечислить пользователей в нашем пуле использования Cognito.Похоже, что это можно сделать только с помощью API CognitoIdentityServiceProvider aws-sdk.Я получил приведенный ниже код для идеальной работы из моего локального node.js.В нем перечислены все пользователи, как и ожидалось.
Однако один и тот же код ведет себя по-разному, если поместить его в лямбда-функцию AWS.Он все еще работает, но никогда не ждет возврата вызова Cognito listUsers ().Это просто завершается, как будто «жду» совсем не ждет.Ни один из console.log () не вызывается из блока client.listUsers (params, function (err, data) ..._).
Я проверял это внутри Lambda напрямую, а также из шлюза AWS API.Возвращается тот же ноль. Сам вызов выполнен успешно, просто данные не возвращаются. См. Журнал в конце.
Кстати, я создал роль и добавил политику, предоставляющую роли полный доступ для пользователя cognito.pool.
Что я пропустил? Ценим вашу помощь!
Martin C.
----------------- code------------------------
async function getUserList() {
console.log("enter LAMDA function**********");
var aws = require('aws-sdk');
aws.config.update({accessKeyId: 'xxxxxxxx', secretAccessKey: 'xxxxxxxxxxx'});
var CognitoIdentityServiceProvider = aws.CognitoIdentityServiceProvider;
var client = new CognitoIdentityServiceProvider({ apiVersion: '2016-04-19', region: 'us-east-2' });
var params = {
UserPoolId: 'us-east-xxxxxxxx', /* required */
AttributesToGet: [
'given_name','family_name','phone_number','email','profile'
],
Filter: null,
Limit: 0,
PaginationToken: null
};
console.log("Right before call the listUser method");
let result = await client.listUsers(params, function(err, data) {
console.log("call back reached!");
if (err) {
console.log(err, err.stack); // an error occurred
const response = {
statusCode: 500,
body: JSON.stringify('An error occurred.'),
}
return response;
}
else {
console.log(data);
var count = data.Users.length;
// successful response
const response = {
statusCode: 200,
body: JSON.stringify("sucessful list users! User count="+count)
}
return response;
}
});
console.log("no waiting here. async!!!")
}
getUserList();
*************** Лямбда-лог*****************
************** Журнал при вызове сnode.js ****************