如何修复用户池********在boto3中不存在

时间:2019-06-13 06:48:20

标签: python amazon-web-services boto3 amazon-cognito

我是AWSboto 3 Python SDK的新手。我通过AWS CLI配置了Access Key IDSecret Access Keyregion name

import boto3

client = boto3.client('cognito-idp')

response = client.admin_get_user(
    UserPoolId='us-east-2_hJpikme9T',
    Username='wasdkiller'
)

这是我的user pool详细信息,

connection pool details

我提供了正确的UserPoolId,但是在上面的代码示例中运行时,CognitoIdentityProvider中的每个函数都出现了错误,例如,我使用了admin_get_user(**kwargs)

ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the AdminGetUser operation: User pool us-east-2_hJpikme9T does not exist.

2 个答案:

答案 0 :(得分:1)

我有同样的错误。另一种选择是在区域us-east-1中创建用户池。我这样做了,然后对Cognito身份进行了成功验证。

答案 1 :(得分:0)

除了service_name(默认参数)以外,我们还可以在boto3.client(*args, **kwargs)中提供更多参数。如您在client()中看到的Session Reference一样,我们可以提供aws_access_key_idaws_secret_access_keyregion_name,而无需使用AWS CLI

如果您使用默认参数(例如已经通过AWS CLI给出的默认参数),则在调用boto3.client()时无需提及aws_access_key_idaws_secret_access_key。但是由于某些原因,我不知道您必须在致电AWS CLI时提及boto3.client()给出的region_name

client = boto3.client('cognito-idp', region_name='us-east-2')

这样,我可以解决上述问题。但是我仍然不知道为什么在调用boto3.client()时我们必须特别提到region_name参数,如果您对此有所了解,请在下面更新此答案或评论。