Python Lambda fornisce botocore.errorfactory.InvalidLambdaResponseException quando attivato dopo la conferma
Ho configurato la funzione AWS Lambda che viene attivata su AWS Cognito. Il trigger su una conferma di posta elettronica di successo. La funzione Lambda è in Python3.6.
Mi riferisco alla documentazione AWS per il trigger postConfirmation di Cognito. https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-post-confirmation.html
"response": {}
Finora ho provato a restituire None, {}, '{}' (stringa json vuota) o un dizionario valido come {'status': 200, 'message': 'the message string'} ma dà un errore.
botocore.errorfactory.InvalidLambdaResponseException: An error occurred (InvalidLambdaResponseException) when calling the ConfirmSignUp operation: Unrecognizable lambda output
Quale dovrebbe essere una risposta valida per la funzione di conferma del post? ecco la parte del codice.
from DBConnect import user
import json
def lambda_handler(event, context):
ua = event['request']['userAttributes']
print("create user ua = ", ua)
if ('name' in ua):
name = ua['name']
else:
name = "guest"
newUser = user.create(
name = name,
uid = ua['sub'],
owner = ua['sub'],
phoneNumber = ua['phone_number'],
email = ua['email']
)
print(newUser)
return '{}' # <--- I am using literals here only.
Risposte
È necessario restituire l'oggetto evento:
return event
Questo non è ovvio negli esempi forniti nella documentazione. Potresti voler controllare e assicurarti che l'oggetto evento contenga una chiave di risposta (dovrebbe).