Получение данных из триггеров Cognito - PullRequest
0 голосов
/ 05 мая 2020

У меня есть таблица пользователей. И мне нужно получить данные о входе пользователя. Можно ли для этого использовать какой-нибудь триггер когнитивного анализа?

Я пытался использовать postAuthentication:

postAuthentication:
    handler: triggers.postAuthentication
    timeout: 10
    environment:
      GET_USER_LAMBDA: ${file(./env.yml):${'GET_USER_LAMBDA'}}
    events:
      - cognitoUserPool: 
          pool: ${file(./env.yml):${'POOL'}}
          trigger: PostAuthentication
          existing: true



module.exports.postAuthentication = (event, context, callback) => {
    try {
        const firstName = event.request.userAttributes['custom:firstName'];
        const lastName = event.request.userAttributes['custom:lastName'];

        lambda.invoke({
            FunctionName: GET_USER_LAMBDA,
            Payload: JSON.stringify({
                query: `${firstName}_${lastName}` 
            }, null, 2)
        })
            .promise()
            .then(data => {
                const body = JSON.parse(data['Payload']).body;

                if (body && body.Items && body.Items[0]) {
                    event.request.clientMetadata = {};
                    event.request.clientMetadata.body = JSON.stringify(body.Items[0]);

                    callback(null, event);
                } else {
                    callback(new Error(`Couldn't fetch USER`));
                }
            });

    } catch (error) {
        context.done(error);
    }
};

lambda.invoke успешно возвращает данные, и ошибок нет, но я могу ' t найти clientMetadata во внешнем интерфейсе.

Какой триггер использовать и как получить данные пользователя?

...