【发布时间】:2020-05-29 04:44:58
【问题描述】:
我正在使用 congnito 对我的应用程序的用户进行身份验证,并且我有一个 crud 可以一个一个地处理它们,但是在某些情况下,我想在一个批处理操作中一次将它们全部删除。
问题是文档对此只字未提,而其他 A&Q 网站则表示没有办法。
我想在一组 cognito 客户端中使用 Promise.all() 来批量删除它们?但我不知道这是否可能,或者这可能会导致我的 lanmbda 超时?
我有这样的想法。
// const data = req.body.users;
const aws = require('aws-sdk');
const CognitoIdentityServiceProvider = aws.CognitoIdentityServiceProvider;
const toDelete = [];
data.forEach((item) => {
const client = new CognitoIdentityServiceProvider({ apiVersion: '2016-04-19', region: 'us-east-1' });
toDelete.push(cliente.adminDeleteUser(/* data */));
})
Promise.all(toDelete).then(() => { /* something */ });
这行得通吗?是不好的做法?有没有更好的办法?
【问题讨论】:
-
您可以执行此操作,但请注意 API 可能存在速率限制。管理 API 尤其具有较低的限制。 SDK 包含重试逻辑,可以处理其中的一些问题,但如果记录数量过多,您就会遇到这种情况。
标签: node.js aws-lambda amazon-cognito