我是AWS和boto 3 Python SDK的新手。我通过AWS CLI配置了Access Key ID
,Secret Access Key
和region name
。
import boto3
client = boto3.client('cognito-idp')
response = client.admin_get_user(
UserPoolId='us-east-2_hJpikme9T',
Username='wasdkiller'
)
这是我的user pool详细信息,
我提供了正确的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.
答案 0 :(得分:1)
我有同样的错误。另一种选择是在区域us-east-1中创建用户池。我这样做了,然后对Cognito身份进行了成功验证。
答案 1 :(得分:0)
除了service_name
(默认参数)以外,我们还可以在boto3.client(*args, **kwargs)中提供更多参数。如您在client()中看到的Session Reference一样,我们可以提供aws_access_key_id
,aws_secret_access_key
和region_name
,而无需使用AWS CLI。
如果您使用默认参数(例如已经通过AWS CLI给出的默认参数),则在调用boto3.client()时无需提及aws_access_key_id
或aws_secret_access_key
。但是由于某些原因,我不知道您必须在致电AWS CLI时提及boto3.client()给出的region_name
。
client = boto3.client('cognito-idp', region_name='us-east-2')
这样,我可以解决上述问题。但是我仍然不知道为什么在调用boto3.client()时我们必须特别提到region_name
参数,如果您对此有所了解,请在下面更新此答案或评论。