AWS Identity Pool过滤器在多种情况下列出用户api

时间:2018-10-09 14:59:51

标签: amazon-web-services boto3 amazon-cognito aws-userpools

是否有一种方法可以在多种情况下从列表用户api过滤结果。我想从列表中获取具有用户名的所有用户的列表

import boto3
client = boto3.client('cognito-idp')
client.list_users(UserPoolId='us-east-1_123456789', AttributesToGet=['email'], Filter="username =\"user_name_1\"")

上面的代码只给我返回一个用户名。现在,如果我想获得多个用户名的相同信息,我似乎找不到解决方法。

例如:

import boto3
usernames=['user_id1','user_id2']
client = boto3.client('cognito-idp')
client.list_users(UserPoolId='us-east-1_123456789', AttributesToGet=['email'], Filter="username =usernames")

2 个答案:

答案 0 :(得分:1)

很遗憾,不是:https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html#API_ListUsers_RequestSyntax

您只能按严格相等或开头过滤;没有通配符或数组。

也就是说,ListUsers似乎没有特定的api调用限制,因此您可以连续快速多次调用它,直到处理完所有用户名为止。

答案 1 :(得分:0)

client.list_users()确实有60个用户的限制,并且该函数不可分页。

我遇到了类似的问题,并创建了包含列表元素i的过滤器值,并在实际函数之前包含了整个过滤器表达式,因此我能够在函数内调用该过滤器值。

最后,我遍历了采用list元素i的新值的过滤器值。