Python Lambda, onay sonrası tetiklendiğinde botocore.errorfactory.InvalidLambdaResponseException veriyor

Aug 24 2020

Bir AWS Cognito'da tetiklenen AWS Lambda işlevini kurdum. Başarılı bir e-posta onayındaki tetikleyici. Lambda işlevi Python3.6'dadır.

Cognito postConfirmation tetikleyicisi için AWS belgelerine başvuruyorum. https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-post-confirmation.html

"response": {}

Şimdiye kadar Yok, {}, '{}' (boş json dizesi) veya {'durum': 200, 'mesaj': 'mesaj dizesi'} gibi geçerli bir sözlüğü döndürmeyi denedim ama hata veriyor.

botocore.errorfactory.InvalidLambdaResponseException: An error occurred (InvalidLambdaResponseException) when calling the ConfirmSignUp operation: Unrecognizable lambda output

Onay sonrası işlevi için geçerli bir yanıt ne olmalıdır? işte kodun bir parçası.

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.

Yanıtlar

2 kerasbaz Aug 23 2020 at 23:54

Olay nesnesini döndürmeniz gerekir:

return event

Bu, belgelerde sağladıkları örneklerde açık değildir. Olay nesnesinin bir yanıt anahtarı içerdiğinden emin olmak isteyebilirsiniz (olmalıdır).