def lambda_handler()

in sam-app/lambda_functions/sfRealTimeQueueMetrics.py [0:0]


def lambda_handler(event, context):

    try:
        logger.info("Start")
        logger.info(f"boto3 version: {boto3.__version__}")

        instance_id = os.environ['AMAZON_CONNECT_INSTANCE_ID']
        queue_max_result = os.environ['AMAZON_CONNECT_QUEUE_MAX_RESULT']
        logger.info(f"instance id: {instance_id}")
        next_token = 'NoToken'

        while len(next_token)!=0:
            if next_token == 'NoToken':
                queues_data = connect.list_queues(InstanceId=instance_id,QueueTypes=['STANDARD'],MaxResults=int(queue_max_result))
            else:
                queues_data = connect.list_queues(InstanceId=instance_id,QueueTypes=['STANDARD'],MaxResults=int(queue_max_result), NextToken=next_token)

            logger.info(f"queues_data: {queues_data}")
            if 'QueueSummaryList' in queues_data.keys():
                queue_summary = queues_data['QueueSummaryList']
                logger.info(f"QueueSummaryList: {queue_summary}")
            else:
                queue_summary=[]
                logger.info("QueueSummaryList key is Not present")

            if 'NextToken' in queues_data.keys():
                next_token = queues_data['NextToken']
                logger.info(f"next_token: {next_token}")
            else:
                next_token=''
                logger.info("NextToken key is Not present")

            if len(queue_summary) !=0:
                logger.info(f"Items in queue List: {len(queue_summary)}")
                queue_ids =[]
                queue_id_name_dict ={}
                for dict_item in queue_summary:
                    queue_ids.append(dict_item['Id'])
                    queue_id_name_dict[dict_item['Id']] = dict_item['Name']
                logger.info(f"Queue_dict map: {queue_id_name_dict}")
                ac_queue_metrics(queue_id_name_dict,queue_ids,instance_id)

    except Exception as e:
        raise e