def handler()

in geocoding_lambda/lambda_function.py [0:0]


def handler(event, context):
    logger = logging.getLogger(__name__)
    
    arguments = event["arguments"]
    logger.debug('Received arguments: %s.', arguments)

    results = []
    try:
        for arg in arguments:
            text = arg[0]
            logger.debug('Received search text: %s.', text)
            req = {'Text': text, 'IndexName': PLACE_INDEX}

            is_arg_valid, bias_position = validate_bias_position_arg(arg[1])
            if is_arg_valid:
                logger.debug('Received bias position: %s.', bias_position)
                req['BiasPosition'] = bias_position

            is_arg_valid, filter_countries = validate_filter_countries_arg(arg[2])
            if is_arg_valid:
                logger.debug('Received filter countries: %s.', filter_countries)
                req['FilterCountries'] = filter_countries

            response = client.search_place_index_for_text(**req)
            logger.debug('Response received from ALS client: %s.', response)

            if len(response["Results"]) >= 1:
                results.append(json.dumps({
                    "Longitude": response["Results"][0]["Place"]["Geometry"]["Point"][0],
                    "Latitude": response["Results"][0]["Place"]["Geometry"]["Point"][1],
                    "Label": response["Results"][0]["Place"]["Label"]
                }))
            else:
                results.append({})

        logger.debug('Returning results: %s.', results)

        return json.dumps({
            "success": True,
            "num_records": len(results),
            "results": results
        })

    except ClientError as e:
        logger.error('Error: %s.', e)
        return json.dumps({
            "success": False,
            "error_msg": str(e),
            "num_records": 0,
            "results": []
        })