def lambda_handler()

in source/get-accounts-info-lambda.py [0:0]


def lambda_handler(event, context):
    logger.info(json.dumps(event))
    accounts = {}
    try:
        if os.environ['FILE_OVERRIDE'].lower() == 'true':
            accounts = list_accounts_from_file()
        else:
            accounts = list_accounts_from_organizations()            
        resource_parameters = accounts['accounts']     
        logger.info("Batching Accounts by 50 to overcome step-function Input limitation of max  32,768 characters")
        n = 50  
        accountsBatch = [resource_parameters[i * n:(i + 1) * n] for i in range((len(resource_parameters) + n - 1) // n )]        
        response=[]        
        for batch in accountsBatch:
            TA_data_extract_sfn_execution_ret = \
                execute_state_machine(os.environ['EXTRACT_TA_DATA_SFN_ARN'],  
                    json.dumps(batch))
            response.append({
                'statusCode': 
                    TA_data_extract_sfn_execution_ret['ResponseMetadata']
                    ['HTTPStatusCode'],
                'body': json.dumps({"TA_data_extract_sfn_execution_ret": 
                    TA_data_extract_sfn_execution_ret['executionArn']})
                    })
            
            if os.environ[("Tags")].strip() != '':
                tag_data_extract_sfn_execution_ret = \
                    execute_state_machine(os.environ['TAG_DATA_EXTRACT_SFN_ARN'], \
                        json.dumps(batch))
            
                response.append({
                    'statusCode': 
                        tag_data_extract_sfn_execution_ret['ResponseMetadata']
                        ['HTTPStatusCode'],
                    'body': json.dumps({"tag_data_extract_sfn_execution_ret": 
                        tag_data_extract_sfn_execution_ret['executionArn']})})
        if os.environ['AnonymousUsage'].lower() == "yes":
            send_anonymous_metric()        
        return response
    except ClientError as e:
        e = sanitize_string(e)
        logger.error("Unexpected client error %s" % e)
        raise AWSTrustedAdvisorExplorerGenericException(e)
    except Exception as f:
        f = sanitize_string(f)
        logger.error("Unexpected exception: %s" % f)
        raise AWSTrustedAdvisorExplorerGenericException(f)