Интеграция таблицы Cognito и DynamoDB - PullRequest
0 голосов
/ 14 января 2020

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

Мне нужно удалить пользователя в этих Таблицы DynamoDB, когда я удаляю одного и того же пользователя в пуле Cognito

, это рабочий процесс.

  1. Пользователь удаляется в Cognito.
  2. Лямбда или любая соответствующая служба прослушайте триггер события.
  3. Лямбда или любая соответствующая служба удаляет пользователя из таблиц динамо-базы данных.

Я читал документы из aws и другие вопросы людей о stackoverflow, Запуск лямбда-функции при удалении пользователя в AWS Cognito User Pool , Amazon Cognito Удалить учетную запись , и я понял, что у Cognito нет специального c триггера для события удаления.

Как мне добиться описанного рабочего процесса?

заранее спасибо.

1 Ответ

1 голос
/ 17 января 2020

К сожалению, Amazon Cognito не поддерживает это из коробки. Вам нужно будет написать собственное решение с сочетанием других сервисов Amazon.

Есть много способов реализовать это, но мы сделали одну вещь в наших приложениях:

Во-первых, создайте свою собственную конечную точку API, такую ​​как: УДАЛИТЬ / пользователь . Вы можете сделать это с помощью API Gateway

Во-вторых, подключите свою конечную точку API к функции Lambda или разместите свой код в другом месте, но вам нужно вызвать API пула пользователей Cognito с вашим кодом и удали это так. Вот фрагмент того, как это можно сделать в NodeJS

const AWS = require('aws-sdk');
AWS.config.update({
  accessKeyId: 'access key id',
  secretAccessKey: 'secret access key',
  region: 'region',
});
const cognito = new AWS.CognitoIdentityServiceProvider();

await cognito.adminDeleteUser({
  UserPoolId: 'pool id',
  Username: 'username',
}).promise();

(для полного ответа о том, как удалить пользователя с кодом, проверьте этот вопрос переполнения стека из )

...