Я пытаюсь использовать SDK для выполнения действий администратора в моем пуле пользователей Cognito из функции Lambda, но я не могу понять, как правильно проходить проверку подлинности в качестве администратора. В идеале я хотел бы просто выполнить роль, которую моя функция уже использует, но мне пока не удалось выполнить эту работу, и я не уверен, возможно ли это вообще. Если это возможно, что мне нужно сделать, чтобы это работало? Если это невозможно, как правильно достичь этого? Нужно ли создавать администратора в пуле пользователей, а затем проходить аутентификацию, используя имя пользователя и пароль?
Редактировать: я реализовал совет Мэтта с помощью приведенного ниже кода, но я только что получил пустой объект из Cognito (буквально просто {} появляется в журналах), и я не уверен, почему. После прочтения документации я должен получить либо данные, либо ошибки. Обновление происходит, поэтому я знаю, что оно работает, я просто ожидал получить подтверждение, кто-нибудь знает, должен ли я получить что-то обратно?
let cogUser;
const params = {
UserAttributes: [{
Name: "email",
Value: args.input.email
}],
UserPoolId: context.userpool_id,
Username: context.user
};
log.debug('Cog user params: ', params);
try {
cogUser = await context.conns.cognito.adminUpdateUserAttributes(params).promise();
} catch(err) {
log.error('Coguser threw error: ', err);
}
log.debug('Coguser return: ', cogUser);
Редактировать 2: Попытка использовать обратный вызов вместо обещаний.
context.conns.cognito.adminUpdateUserAttributes(params, function(err, data) {
if (err) {
console.log(err)
} else {
cogUser = data;
}
});