Вы довольно близки.
Вы можете увидеть полную документацию на странице Лямбда-триггер Migrate User , однако вкратце ваш ответ должен выглядеть так:
{
response: {
userAttributes: {
email: 'user@example.com',
email_verified: true,
custom:myAttribute: 123,
},
finalUserStatus: 'CONFIRMED',
messageAction: 'SUPPRESS',
forceAliasCreation: false,
}
}
Где:
userAttribute
: это словарь / карта ключей атрибутов пользователя в Cognito (обратите внимание, что любые пользовательские атрибуты должны иметь префикс custom:
), чтобызначения из системы, из которой вы переходите.Вам не нужно предоставлять все это, хотя, если вы используете псевдоним электронной почты, вы можете установить email_verified: true
, чтобы пользователю не приходилось повторно проверять свой адрес электронной почты. finalUserStatus
: если вы установите значение CONFIRMED
, тогда пользователю не придется повторно подтверждать свой адрес электронной почты / номер телефона, что, вероятно, является разумным значением по умолчанию.Если вы обеспокоены тем, что пароль вводится в виде простого текста для Cognito впервые, вместо этого вы можете использовать RESET_REQUIRED
, чтобы заставить их сменить пароль при первом входе в систему. messageAction
:должно быть SUPPRESS
, если вы не хотите отправлять им приветственное электронное письмо при миграции. forceAliasCreation
: важно только в том случае, если вы используете псевдонимы электронной почты, так как это останавливает пользователей, которым удается зарегистрироваться вcognito заменяется при переносе.
Если вы ответите этим (сохранение оставшегося оригинала rootObj
удобно, но не обязательно, тогда пользователь будет перенесен с указанными атрибутами.
Если вы throw
(или не можете ответить с правильной формой события), то лямбда переноса завершается неудачно, и пользователю сообщается, что он не может мигрировать, например, потому что их нет в вашей старой пользовательской базе данных, или онине предоставил правильные учетные данные.