AWS Cognito 从用户池中删除所有用户

aji*_*lpm 3 amazon-web-services amazon-cognito

我们如何使用 AWS CLI 从 AWS Cognito 中的特定用户池中删除所有用户?

Ric*_*ber 25

为了加快删除速度,我修改了 @GRVPrasad 的答案以使用xargs -P,它将删除操作分配给多个进程。

aws cognito-idp list-users --user-pool-id $COGNITO_USER_POOL_ID | jq -r '.Users | .[] | .Username' | xargs -n 1 -P 5 -I % bash -c "echo Deleting %; aws cognito-idp admin-delete-user --user-pool-id $COGNITO_USER_POOL_ID --username %"
Run Code Online (Sandbox Code Playgroud)

  • 这是一个令人惊叹的解决方案,运行完美,而且速度也非常快。如果可能的话,我会投票 100000 倍。 (3认同)

GRV*_*sad 12

尝试以下:

aws cognito-idp list-users --user-pool-id $COGNITO_USER_POOL_ID |
jq -r '.Users | .[] | .Username' |
while read uname1; do
  echo "Deleting $uname1";
  aws cognito-idp admin-delete-user --user-pool-id $COGNITO_USER_POOL_ID --username $uname1;
done
Run Code Online (Sandbox Code Playgroud)

  • 您可以在控制台上提供的 AWS CloudShell 上运行它。 (3认同)
  • 你需要安装 jq 才能使其工作。 (3认同)
  • 在我的 Mac 上运行得很好,可能还可以在任何类似 UNIX 的机器上运行。 (2认同)
  • 绝对的传奇!将其复制并粘贴到 AWS cloudshell 控制台中,替换 user_pool_id 和 BOOM!魔法! (2认同)

Edu*_*rdo 6

这是基于 @ajilpm 批处理脚本的 bash 版本:

# deleteAllUsers.sh
COGNITO_USER_POOL_ID=$1

aws cognito-idp list-users --user-pool-id $COGNITO_USER_POOL_ID |
jq -r '.Users | .[] | .Username' |
while read user; do
  aws cognito-idp admin-delete-user --user-pool-id $COGNITO_USER_POOL_ID --username $user
  echo "$user deleted"
done
Run Code Online (Sandbox Code Playgroud)

您必须安装jq并记住使脚本可执行:chmod +x deleteAllUsers.sh

用户池 ID 可以作为命令行参数提供:./deleteAllUsers.sh COGNITO_USER_POOL_ID


aji*_*lpm 1

如果您安装并配置了 AWS Cli,我创建了一个脚本来从 Windows CMD 执行此操作,这将逐页删除所有用户,因此您需要运行它直到删除所有用户。

您需要下载JQ并将其路径添加到系统环境路径中才能进行以下操作。

---删除.bat---

@echo off setlocal

for /f "delims=" %%I in 
  ('aws cognito-idp list-users --user-pool-id  $COGNITO_USER_POOL_ID ^| 
    jq -r ".Users | .[] | .Username"')
do 
  (aws cognito-idp admin-delete-user --user-pool-id $COGNITO_USER_POOL_ID --username %%I 
   echo %%I deleted)
Run Code Online (Sandbox Code Playgroud)

---删除.bat---

  • @Marcin,我是第一次在这个网站上发帖,所以我认为以问答格式发布它可以帮助人们轻松找到它,这就是我在整个网站上看到的格式。如果有其他格式,请告诉我,我会更新。 (2认同)