Попытка обновить пользовательские атрибуты с помощью лямбда-функции AWS - PullRequest
0 голосов
/ 19 июня 2019

Я настроил небольшое приложение для 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 не обновляется атрибут при запуске этой функции.

...