import boto3 import time import os import base64 import traceback from botocore.exceptions import ClientError from utils.performance_tracker import EventsCounter, performance_tracker_initializer from api.state_table_manager import state_table_manager from utils.state_table_common import TASK_STATE_CANCELLED, TASK_STATE_FAILED, TASK_STATE_FINISHED import utils.grid_error_logger as errlog state_table = state_table_manager(os.environ['STATE_TABLE_SERVICE'], os.environ['STATE_TABLE_CONFIG'], os.environ['STATE_TABLE_NAME']) event_counter = EventsCounter(["invocations", "retrieved_rows"]) perf_tracker = performance_tracker_initializer( os.environ["METRICS_ARE_ENABLED"], os.environ["METRICS_GET_RESULTS_LAMBDA_CONNECTION_STRING"], os.environ["METRICS_GRAFANA_PRIVATE_IP"]) def get_time_now_ms(): return int(round(time.time() * 1000)) def get_tasks_statuses_in_session(session_id):
task_queue_service=agent_config_data['task_queue_service'], task_queue_config=agent_config_data['task_queue_config'], tasks_queue_name=agent_config_data['tasks_queue_name'], region=region) lambda_cfg = botocore.config.Config(retries={'max_attempts': 3}, read_timeout=2000, connect_timeout=2000, region_name=region) lambda_client = boto3.client('lambda', config=lambda_cfg, endpoint_url=os.environ['LAMBDA_ENDPOINT_URL'], region_name=region) state_table = state_table_manager(agent_config_data['state_table_service'], agent_config_data['state_table_config'], agent_config_data['ddb_state_table'], region) stdout_iom = in_out_manager(agent_config_data['grid_storage_service'], agent_config_data['s3_bucket'], agent_config_data['redis_url'], s3_region=region) perf_tracker_pre = performance_tracker_initializer( agent_config_data["metrics_are_enabled"], agent_config_data["metrics_pre_agent_connection_string"], agent_config_data["metrics_grafana_private_ip"]) event_counter_pre = EventsCounter([ "agent_no_messages_in_tasks_queue", "agent_failed_to_claim_ddb_task", "agent_successful_acquire_a_task", "agent_auto_throttling_event", "rc_cubic_decrease_event"