def lambda_handler()

in Back-End/lambdas/receive_sqs_message.py [0:0]


def lambda_handler(event, context):

    print(json.dumps(event))

    # message hasn't failed yet
    failed_message = False

    try:
        message = event['Records'][0]
    except KeyError:
        print('No messages on the queue!')

    try:
        message = event['Records'][0]
        print(json.dumps(message))
        sqs_function = message['messageAttributes']['Function']['stringValue']
        account_number = message['messageAttributes']['AccountNumber']['stringValue']
        region = message['messageAttributes']['Region']['stringValue']
        receipt_handle = event['Records'][0]['receiptHandle']

        print(f'sqs_function passed is: {sqs_function}')

        # Try run each function
        try:

            # Lambda logic
            compare_and_update_function(
                account_number, region, sqs_function, cross_account_role)

        except ClientError as e:
            print(
                f'Error: with {sqs_function}, in account {account_number}, in region {region} - {e}')
        except Exception as e:
            print(
                f'Error: with {sqs_function}, in account {account_number}, in region {region} - {e}')

    except ClientError as e:
        print(f'Error: on processing message, {e}')
        failed_message = True
    except Exception as e:
        print(f'Error: on processing message, {e}')
        failed_message = True

    # message must have passed, deleting
    if failed_message is False:
        client_sqs.delete_message(
            QueueUrl=queue_url,
            ReceiptHandle=receipt_handle,
        )