Как отказаться от регистрации триггера с GoLang - PullRequest
0 голосов
/ 03 апреля 2019

Я успешно создал лямбда-функцию, используя Go для триггера предварительной регистрации AWS Cognito.Моя проблема в том, что я не могу отказать / отклонить пользователя, если пользовательское поле недопустимо (на основе пользовательской логики).

Я возвращаю ошибку, как описано в руководстве по триггеру AWS Cognito:

return event, fmt.Errorf("Invalid value for field 'custom:myField'")

также я пробовал следующие варианты:

  • возврат пустого события (nil не разрешено для события):

    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?

1 Ответ

0 голосов
/ 11 апреля 2019

Похоже, что-то изменилось в триггерах AWS Cognito Lambda, так как сегодня я попробовал следующий исходный код, и он работал как ожидалось:

func handler(event events.CognitoEventUserPoolsPreSignup) (events.CognitoEventUserPoolsPreSignup, error) {
    fmt.Println(event)
    return event, fmt.Errorf("TESTING LAMBDA ERRORS WITH GOLANG")
}

Кроме того, предыдущий исходный код, который не работал, как ожидалось, когда яопубликовал этот вопрос в данный момент работает (без изменений на моей стороне).

...