Estoy tratando de escribir una función Lambda que crea una carpeta en un depósito s3 con el nombre de un usuario de cognito recién confirmado. Esto me permitirá mantener el acceso de ese usuario limitado a su carpeta. Creé una función Lambda que puede crear una carpeta en s3 usando un nombre de usuario pasado a través del objeto de evento de prueba de Lambda. Sé que cognito tiene un disparador de "evento de confirmación" y he seleccionado mi función para que se ejecute en ese disparador, pero no sé cómo recuperar el nombre de usuario de ese evento. La captura de pantalla a continuación es de mi código Lambda.
mi funcion lambda
Avíseme si necesito proporcionar más información. He visto cosas sobre el posible uso de la puerta de enlace API de Amazon, pero en la hora y media que me he metido con la puerta de enlace API no me he acercado más a descubrir cómo resolver este problema.
¡Gracias! ~ Ben
Buena pregunta, en la documentación ( https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-lambda-trigger-syntax-post-confirmation.html ) dicen solo sobre request.userAttributes que obviamente no contiene nombre de usuario.
Como verifiqué, el objeto de evento completo para el activador posterior a la confirmación se ve así:
{ "version": "1", "region": "eu-central-1", "userPoolId": "eu-central-1_45YtlkflA", "userName": "user4", "callerContext": { "awsSdkVersion": "aws-sdk-java-console", "clientId": "4736lckau64in48dku3rta0eqa" }, "triggerSource": "PostConfirmation_ConfirmSignUp", "request": { "userAttributes": { "sub": "a2c21839-f9fc-49e3-be9a-16f5823d6705", "cognito:user_status": "CONFIRMED", "email_verified": "true", "email": "asdfsdfsgdfg@carbtc.net" } }, "response": {} } Básicamente, solo event.userName recuperará el nombre de usuario.
ACTUALIZAR
Documentación reciente: