我已经使用Go成功为AWS Cognito的预注册触发器创建了一个lambda函数。 我的问题是,如果自定义字段无效(基于自定义逻辑),我将无法拒绝/拒绝用户。
我正在返回错误,如AWS Cognito触发器的指南所述:
return event, fmt.Errorf("Invalid value for field 'custom:myField'")
我也尝试过以下选项:
返回一个空事件(该事件不允许为零):
var emptyEvent events.CognitoEventUserPoolsPreSignup
return emptyEvent, fmt.Errorf("Invalid value for field 'custom:myField'")
在原始事件中更改ValidationData:
event.Request.ValidationData = map[string]string{"custom:myField": "Invalid value for field 'custom:myField."}
return event, fmt.Errorf("Invalid value for field 'custom:myField'")
在原始事件中更改UserAttributes
event.Request.UserAttributes["email"] = ""
return event, fmt.Errorf("Invalid value for field 'custom:myField'")
所有这些方法均失败,总是在用户池中创建用户。
使用GoLang lambda函数拒绝注册请求的正确方法应该是什么?
答案 0 :(得分:0)
好像对AWS Cognito Lambda触发器有所更改,因为今天我尝试了以下源代码,并且按预期工作:
func handler(event events.CognitoEventUserPoolsPreSignup) (events.CognitoEventUserPoolsPreSignup, error) {
fmt.Println(event)
return event, fmt.Errorf("TESTING LAMBDA ERRORS WITH GOLANG")
}
此外,当我发布此问题时,先前的源代码无法正常工作(我方面没有任何变化)。