Как добавить пользователей в DynamoDB с помощью лямбда-триггера Cognito после подтверждения: пошаговое руководство

Вы хотите легко добавлять пользователей в DynamoDB после успешного подтверждения в Amazon Cognito? Не смотрите дальше! В этой записи блога мы покажем вам процесс использования триггера Lambda после подтверждения Cognito для автоматического добавления пользователей в DynamoDB. Мы предоставим четкие объяснения, примеры кода и простые шаги, которые помогут вам легко осуществить эту интеграцию.

Раздел 1. Настройка Amazon Cognito
Для начала убедитесь, что у вас настроен пул пользователей Amazon Cognito, который будет обрабатывать аутентификацию и регистрацию пользователей. Если вы еще его не создали, выполните следующие действия:

  1. Войдите в консоль управления AWS.
  2. Перейдите к сервису Amazon Cognito.
  3. Создайте новый пул пользователей, нажав «Создать пул пользователей».
  4. Настройте параметры пула пользователей в соответствии со своими требованиями.
  5. Сохраните изменения и запишите идентификатор пула пользователей, он понадобится нам позже.

Раздел 2. Создание лямбда-функции
Далее мы создадим лямбда-функцию, которая будет запускаться после успешного подтверждения пользователя. Эта функция будет отвечать за добавление данных пользователя в DynamoDB. Выполните следующие действия:

  1. Перейдите в консоль управления AWS и перейдите к сервису Lambda.
  2. Нажмите «Создать функцию».
  3. Выберите имя для своей функции и выберите среду выполнения по своему усмотрению (например, Node.js или Python).
  4. В разделе «Дизайнер» нажмите «Добавить триггеры» и выберите «Cognito».
  5. Настройте триггер, выбрав пул пользователей и указав тип триггера «Подтверждение публикации».
  6. Нажмите «Добавить», а затем «Создать функцию», чтобы создать лямбда-функцию.
  7. Напишите код внутри функции для взаимодействия с DynamoDB. Вот пример использования Node.js:
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB();
exports.handler = async (event, context) => {
  const { sub, email } = event.request.userAttributes;

  const params = {
    TableName: 'YourTableName',
    Item: {
      'UserId': { S: sub },
      'Email': { S: email }
    }
  };
  try {
    await dynamodb.putItem(params).promise();
    console.log('User added to DynamoDB successfully.');
  } catch (error) {
    console.error('Error adding user to DynamoDB:', error);
  }
};

Не забудьте заменить 'YourTableName'на фактическое имя вашей таблицы DynamoDB.

Раздел 3. Настройка триггера Lambda
Теперь, когда наша функция Lambda готова, давайте настроим ее как триггер для пула пользователей Cognito:

  1. Вернитесь к настройкам пула пользователей в консоли Amazon Cognito.
  2. Нажмите «Триггеры» в левом навигационном меню.
  3. Прокрутите вниз до раздела «Опубликовать подтверждение» и выберите в раскрывающемся меню созданную вами лямбда-функцию.
  4. Сохраните изменения.

Раздел 4. Тестирование интеграции
Чтобы убедиться, что все настроено правильно, давайте проверим интеграцию:

  1. Зарегистрируйте нового пользователя в своем пуле пользователей Cognito.
  2. Подтвердите регистрацию пользователя, перейдя по ссылке для подтверждения, отправленной на его адрес электронной почты.
  3. Проверьте таблицу DynamoDB, чтобы убедиться, что данные пользователя были успешно добавлены.

Поздравляем! Вы успешно интегрировали Amazon Cognito с DynamoDB с помощью триггера Lambda после подтверждения. Следуя инструкциям, описанным в этом руководстве, вы сможете легко добавлять пользователей в DynamoDB после успешного подтверждения, обеспечивая беспрепятственное управление пользователями в ваших приложениях.

Реализуя эту интеграцию, вы можете гарантировать, что пользовательские данные будут эффективно храниться и будут легко доступны для нужд вашего приложения.