Node.js 使用AWS Lambda删除Cognito用户

Node.js 使用AWS Lambda删除Cognito用户,node.js,aws-lambda,amazon-cognito,Node.js,Aws Lambda,Amazon Cognito,我想让用户能够在我的android应用程序中删除他们的帐户。我已经用AWS Amplify和AWS Cognito用户池设置了登录/sig-up功能。但是Amplify不提供“删除用户”功能,所以我想使用lambda函数从我的cognito用户池中删除一个用户 当用户单击应用程序中的“删除我的帐户”时,将调用该函数。为了测试该函数,我在Lambda函数中使用了一个硬编码的用户名,而不是将其传递到函数中。但即使这样也不行。部署Lambda函数后,我通过单击控制台中的“Test”来运行该函数。然后,

我想让用户能够在我的android应用程序中删除他们的帐户。我已经用AWS Amplify和AWS Cognito用户池设置了登录/sig-up功能。但是Amplify不提供“删除用户”功能,所以我想使用lambda函数从我的cognito用户池中删除一个用户

当用户单击应用程序中的“删除我的帐户”时,将调用该函数。为了测试该函数,我在Lambda函数中使用了一个硬编码的用户名,而不是将其传递到函数中。但即使这样也不行。部署Lambda函数后,我通过单击控制台中的“Test”来运行该函数。然后,控制台显示
执行结果:successed
,但响应为
null
。我会选择状态200或400作为回应。在执行的CloudWatch日志中,我只能看到我的第一条日志语句(“我在这里”),其他两条没有出现。在Cognito控制台中,用户仍然在那里

这是我的
Lambda代码(
Node.js
):

在我测试此函数之后,用户“5b53…138”仍然存在于我的Cognito用户池“syz…f-dev”中:

这是我在Cloudwatch中找到的日志文件:

我的Lambda函数在这3个策略中起作用,我使用了IAM策略模拟器,并且
AmazonCongnitoAuthenticateDidEntities
允许执行操作
AdminDeleteUser
,因此这不应该是问题:

  • AmazonCongnitoAuthenticateDidEntities
  • AmazonCongnitopoweruser
  • AWSLambdaBasic执行角色

在CloudWatch中,我可以看到函数已被调用。

首先,您或用户池id错误,请打开您的cognito用户池来查找正确的on:在控制台中打开用户池时,您首先看到的是id:

它从您所在的地区开始,后跟一个uu,在您的例子中是
eu-central-1_u

然后尝试使用此代码而不是adminDeleteUser函数。那么它应该会起作用:

try {
  const data = await cognitoidentityserviceprovider.adminDeleteUser(params).promise();
} catch (error) {
  console.log(error);
}

首先,yoor用户池id是错误的,通过打开cognito用户池找到正确的:在控制台中打开用户池时,首先看到的是id:

它从您所在的地区开始,后跟一个uu,在您的例子中是
eu-central-1_u

然后尝试使用此代码而不是adminDeleteUser函数。那么它应该会起作用:

try {
  const data = await cognitoidentityserviceprovider.adminDeleteUser(params).promise();
} catch (error) {
  console.log(error);
}