这个问题的原因是使用Lambda别名作为Cognito触发器,并且Lambda函数没有Cognito针对PreSignUp调用所需的权限。可以通过授予Cognito User Pool访问Lambda别名的权限来解决此问题。
以下是一个解决方法的代码示例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction"
],
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:yourLambdaFunctionName",
"Condition": {
"ArnLike": {
"AWS:SourceArn": "arn:aws:cognito-idp:us-west-2:123456789012:userpool/us-west-2_ABC123"
}
}
}
]
}
在您的Lambda函数角色策略中添加此IAM策略,并替换上面的示例中的资源和资源标识符以匹配您自己的资源和资源标识符。同样,请注意替换示例中给出的AWS区域和用户池ID。