Python Lambda memberikan botocore.errorfactory.InvalidLambdaResponseException saat dipicu pada postconfirmation

Aug 24 2020

Saya telah menyiapkan fungsi AWS Lambda yang dipicu di AWS Cognito. Pemicu konfirmasi email berhasil. Fungsi Lambda ada di Python3.6.

Saya mengacu pada dokumentasi AWS untuk Cognito postConfirmation trigger. https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-post-confirmation.html

"response": {}

Sejauh ini saya telah mencoba mengembalikan None, {}, '{}' (string json kosong) atau kamus valid seperti {'status': 200, 'message': 'the message string'} tetapi memberikan kesalahan.

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

Apa yang seharusnya menjadi respons yang valid untuk fungsi konfirmasi posting? di sini adalah bagian dari kode.

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.

Jawaban

2 kerasbaz Aug 23 2020 at 23:54

Anda perlu mengembalikan objek acara:

return event

Ini tidak jelas dalam contoh yang mereka berikan dalam dokumentasi. Anda mungkin ingin memeriksa dan memastikan objek acara memang berisi kunci respons (seharusnya).