Лучший способ синхронизировать RDS DB и Cognito - PullRequest
0 голосов
/ 03 февраля 2019

Я довольно новичок во всех инструментах AWS BTW.В любом случае, я уже создал Cognito User Pool и могу создавать новых пользователей и входить в систему, но мне также нужны эти поля в моей базе данных RDS.

Вчера я читал документы и учебные пособия по этой проблеме, но похоже, чтомного способов синхронизации двух источников данных.Я не знаю, есть ли что-то вроде AppSync, чтобы сделать это, или мне нужно написать лямбду из двух шагов, поэтому я ищу совет для более опытных пользователей, таких как вы, ребята.

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Можно использовать лямбда-преобразователи AWS AppSync в сочетании с пользовательскими пулами Cognito в качестве выбора AuthZ для API AppSync для удовлетворения вашего варианта использования.По сути, когда пользователь завершает авторизацию с помощью cognito, у вас будет $ $ context.identity.claims, который содержит атрибуты пользователя, а внутри вашего лямбда-резолвера вы можете записать в свою БД RDS.

Некоторые справочные документы:

0 голосов
/ 19 июля 2019

Краткий ответ:

Вы можете реплицировать данные пула пользователей Cognito в таблицу SQL, прослушивая события Cognito (например, с помощью AWS Lambda).

Длинный ответ:

Я думаю, вы можете использовать Cognito User Pools в качестве аутентификации / пользовательских данных Ограниченный контекст , другими словами, единственный источник правды для аутентификации и пользовательских данных.

И другие BC, нуждающиеся впользовательские данные (например, контекст продаж) могут использовать некую архитектуру репликации данных для синхронизации пользовательских данных только для чтения, для внутренних сложных запросов или просто для отделения от Cognito.

Один пример репликации данных в этом случае можетприслушиваться к событиям Cognito (AWS Lambda может помочь с этим) для репликации пользовательских данных в ограниченный контекст (только часть данных, которая вам необходима для этого контекста).

Но помните, что реплицированные данные доступны только для чтенияисходные данные Cognito должны быть единственным источником правды.

0 голосов
/ 03 февраля 2019

У вас могут быть только основные обязательные атрибуты для аутентификации в пуле пользователя Cognito, такие как имя пользователя, имя, адрес электронной почты и номер телефона, а также остальные метаданные в другой базе данных, такой как RDS или DynamoDB.
В динамо или RDS вы можете создать однозначное сопоставление имени пользователя в cognito и остальных метаданных.Как например:

*username* -> pk
employee_id
address
user_type
first_name
last_name
marital_status
gender

С точки зрения реализации:
Предоставить лямбду для создания и обновления пользователя.Создайте пользователя в Cognito, используя только обязательные атрибуты, ранее определенные с помощью API Cognito, затем вставьте метаданные для этого пользователя в выбранную вами базу данных.То же самое касается вашего PUT API с небольшим изменением: вам придется обновлять пул пользователей и метаданные пользователей в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...