Я настроил небольшое приложение для iOS, используя AWS Cognito для регистрации и входа пользователей.Сейчас работает.Затем я хочу, чтобы пользователи могли войти в систему, а затем установить или изменить свою фамилию (а также имя и, возможно, некоторую другую информацию) в базе данных Cognito.
Для этого я предполагаю, что мне потребуетсясоздайте лямбда-функцию и используйте ее для обновления атрибутов family_name и данное_имя (по крайней мере, это должно быть одним из решений).
Но то, что я пробовал, еще не работает.Это то, что у меня есть на данный момент.
Код лямбда-функции (это, очевидно, тестовый код, но он должен работать):
var AWS = require('aws-sdk');
exports.handler = async (event,context) => {
var cognitIdSP = new AWS.CognitoIdentityServiceProvider();
var params = {
UserAttributes: [
{
Name: 'family_name',
Value: 'Kennedy'
},
{
Name: 'given_name',
Value: 'John_Fitzerald'
},
],
UserPoolId: 'ap-northeast-1_xxyyzz',
Username: 'zob'
};
cognitIdSP.adminUpdateUserAttributes(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
}
И политика для исполняющей ролииз вышеприведенной лямбда-функции:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "cognito-idp:AdminUpdateUserAttributes",
"Resource": "arn:aws:cognito-idp:ap-northeast-1:123456789:userpool/ ap-northeast-1_xxyyzz"
}
]
}
Насколько я вижу, в базе данных Cognito не обновляется атрибут при запуске этой функции.