3

有没有办法在多个条件下过滤列表用户 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")
4

2 回答 2

3

不幸的是:https ://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html#API_ListUsers_RequestSyntax

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

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

于 2018-10-10T10:24:49.880 回答
-3

client.list_users() 确实有 60 个用户的限制,并且此功能不可分页。

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

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

于 2019-01-28T10:15:24.297 回答