Java 用户池不存在

Java 用户池不存在,java,server-side,amazon-cognito,aws-cognito,Java,Server Side,Amazon Cognito,Aws Cognito,我试图从java后端连接到aws cognito,但当涉及到在aws Lambda中测试它时,它会抛出一个异常,并显示以下消息: 我输入的凭据是正确的,因为我已经在python代码中测试了它们,并且工作正常 这是我用来连接的代码: private AdminInitiateAuthRequest buildAuhtRequest(String email, String password){ Map<String,String> authParams = new HashM

我试图从java后端连接到aws cognito,但当涉及到在aws Lambda中测试它时,它会抛出一个异常,并显示以下消息:

我输入的凭据是正确的,因为我已经在python代码中测试了它们,并且工作正常

这是我用来连接的代码:

private AdminInitiateAuthRequest buildAuhtRequest(String email, String password){
    Map<String,String> authParams = new HashMap<String,String>();
    authParams.put("email", email);
    authParams.put("password", password);

    return new AdminInitiateAuthRequest()
            .withAuthFlow(AuthFlowType.ADMIN_NO_SRP_AUTH)
            .withAuthParameters(authParams)
            .withClientId(credentials.getClientId())
            .withUserPoolId(credentials.getPoolId());
}

可能您已经在本地使用默认区域、访问密钥和访问机密设置了aws环境;而lambda角色没有授权处理您指定的Cognito池。尝试增加lambda角色的权限。

设置区域并尝试,以便您的函数确定要在cognito下检查的区域

我想你的答案有错
private AdminInitiateAuthRequest buildAuhtRequest(String email, String password){
    Map<String,String> authParams = new HashMap<String,String>();
    authParams.put("email", email);
    authParams.put("password", password);

    return new AdminInitiateAuthRequest()
            .withAuthFlow(AuthFlowType.ADMIN_NO_SRP_AUTH)
            .withAuthParameters(authParams)
            .withClientId(credentials.getClientId())
            .withUserPoolId(credentials.getPoolId());
}
public class CognitoClientCredentials {

    private String poolId = "xxxxxxxxx";
    private String clientId = "xxxxxxxxxxxxxxxx";

    public String getPoolId(){
        return this.poolId;
    }

    public String getClientId(){
        return this.clientId;
    }
}