Python Lambda dando botocore.errorfactory.InvalidLambdaResponseException cuando se activa después de la confirmación
He configurado la función AWS Lambda que se activa en un AWS Cognito. El desencadenante de una confirmación por correo electrónico exitosa. La función Lambda está en Python3.6.
Me refiero a la documentación de AWS para el disparador posterior a la confirmación de Cognito. https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-post-confirmation.html
"response": {}
Hasta ahora he intentado devolver None, {}, '{}' (cadena json vacía) o un diccionario válido como {'status': 200, 'message': 'the message string'} pero está dando un error.
botocore.errorfactory.InvalidLambdaResponseException: An error occurred (InvalidLambdaResponseException) when calling the ConfirmSignUp operation: Unrecognizable lambda output
¿Cuál debería ser una respuesta válida para la función de confirmación posterior? aquí está la parte del código.
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.
Respuestas
Debe devolver el objeto de evento:
return event
Esto no es obvio en los ejemplos que proporcionan en la documentación. Es posible que desee verificar y asegurarse de que el objeto de evento contenga una clave de respuesta (debería).