Node.js 有没有一种方法可以使用lambda从cognito池中批量删除用户?

Node.js 有没有一种方法可以使用lambda从cognito池中批量删除用户?,node.js,aws-lambda,amazon-cognito,Node.js,Aws Lambda,Amazon Cognito,我使用congnito对我的应用程序的用户进行身份验证,我有一个crud,可以逐个处理它们,但有时我想在一个批处理操作中一次性删除它们 问题是,文档对此只字不提,而其他A&Q网站则表示没有办法做到这一点 我想在cognito客户机数组中使用Promise.all()在一个批中删除它们?但我不知道这是否可能,或者这可能导致我的lanmbda超时 像我想的那样 // const data = req.body.users; const aws = require('aws-sdk'); const

我使用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 */ });


这行吗?这是坏习惯吗?有更好的方法吗?

不使用lambda函数的另一个选项是,如果您在windows中配置了aws cli,您可以使用以下脚本作为bat文件从列表命令输出中删除单个页面上列出的用户,重复此操作,直到删除所有用户

您需要下载JQ,并将其路径添加到system env path中,以使以下各项正常工作

---删除.bat---

@回音 setlocal

对于/f“delims=“%%I in('aws cognito idp列表用户--用户池id$cognito_用户_池id^ | jq-r)。用户|.]|.Username“')不( aws cognito idp管理员删除用户--用户池id$cognito\u用户\u池\u id--用户名%%I echo%%我已删除 )


---delete.bat---

您可以这样做,但要注意API上可能存在的速率限制。管理API尤其具有较低的限制。SDK包含了重试逻辑,可以处理其中的一些问题,但是如果记录数量太多,您就会点击它。