InvalidLambdaResponseException при вызове операции SignUp - PullRequest
0 голосов
/ 13 апреля 2020

Я получаю InvalidLambdaResponseException при вызове операции SignUp: нераспознаваемый лямбда-вывод, ошибка при запуске лямбда-выражения. Я пытаюсь зарегистрировать пользователя в Cognito, но когда я запускаю свою лямбду, я получаю эту ошибку. ---- мой лямбда-код ---

import boto3
import botocore.exceptions
import hmac
import hashlib
import base64
import json
USER_POOL_ID = 'abcd'
CLIENT_ID = 'xyz'
CLIENT_SECRET = 'abds'
def get_secret_hash(username):
    msg = username + CLIENT_ID
    dig = hmac.new(str(CLIENT_SECRET).encode('utf-8'), 
        msg = str(msg).encode('utf-8'), digestmod=hashlib.sha256).digest()
    d2 = base64.b64encode(dig).decode()
    return d2
def lambda_handler(event, context):
    for field in ["username", "email", "password", "name"]:
        if not event.get(field):
            return {"error": False, "success": True, 'message': f"{field} is not present", "data": None}
    username = event['username']
    email = event["email"]
    password = event['password']
    name = event["name"]
    client = boto3.client('cognito-idp')
    try:
        resp = client.sign_up(
            ClientId=CLIENT_ID,
            SecretHash=get_secret_hash(username),
            Username=username,
            Password=password, 
            UserAttributes=[
            {
                'Name': "name",
                'Value': name
            },
            {
                'Name': "email",
                'Value': email
            }
            ],
            ValidationData=[
                {
                'Name': "email",
                'Value': email
            },
            {
                'Name': "custom:username",
                'Value': username
            }
])


    except client.exceptions.UsernameExistsException as e:
        return {"error": False, 
               "success": True, 
               "message": "This username already exists", 
               "data": None}
    except client.exceptions.InvalidPasswordException as e:

        return {"error": False, 
               "success": True, 
               "message": "Password should have Caps,\
                          Special chars, Numbers", 
               "data": None}
    except client.exceptions.UserLambdaValidationException as e:
        return {"error": False, 
               "success": True, 
               "message": "Email already exists", 
               "data": None}

    except Exception as e:
        return {"error": False, 
                "success": True, 
                "message": str(e), 
               "data": None}

    return {"error": False, 
            "success": True, 
            "message": "Please confirm your signup, \
                        check Email for validation code", 
            "data": None}

Я нигде не искал всю сеть, я не могу найти ответ на этот вопрос, если кто-то может мне помочь, то это очень ценится. Заранее спасибо.

...