C.T*_*mas 4 python amazon-web-services amazon-cognito boto3
我需要列出认知用户池的所有用户。有没有办法返回用户池的所有用户?
boto3 - 客户端的 list_users-function 就像下面的代码一样只返回 60 个用户而不是所有用户。
client = boto3.client('cognito-idp',
region_name=aws_region,
aws_access_key_id=aws_access_key,
aws_secret_access_key=aws_secret_key,
config=config)
print('Setup client')
response = client.list_users(
UserPoolId=userpool_id,
AttributesToGet=[
'email','sub'
]
)
Run Code Online (Sandbox Code Playgroud)
预期结果是包含 cognito 用户组的所有用户的 json-objects 列表
Eri*_*ric 10
@A.Khan 的答案是正确的。下面我编写了一种方法来做到这一点:
def get_all_users():
cognito = boto3.client('cognito-idp')
users = []
next_page = None
kwargs = {
'UserPoolId': "whatever_your_user_pool_id_is"
}
users_remain = True
while users_remain:
if next_page:
kwargs['PaginationToken'] = next_page
response = cognito.list_users(**kwargs)
users.extend(response['Users'])
next_page = response.get('PaginationToken', None)
users_remain = next_page is not None
return users
Run Code Online (Sandbox Code Playgroud)