in src/lambda_functions/cw_custom_widget_python/lambda_function.py [0:0]
def handler(event, _):
"""Lambda Handler"""
LOGGER.debug(event)
widget_context = event.get("widgetContext")
time_range = widget_context.get("timeRange", {}).get("zoom") or widget_context.get("timeRange")
start_time = time_range.get("start") // 1000
end_time = time_range.get("end") // 1000
log_group = event["logGroups"]
query = event["query"]
widget_type = event["widgetType"]
try:
input_df = get_query_results_as_df(
log_group_names=[log_group],
query=query,
start_time=start_time,
end_time=end_time,
logs_client=CLIENT,
logger=LOGGER,
)
except Exception as exception: # pylint disable=broad-except
LOGGER.error("exception running query: %s", exception)
raise
if input_df.empty:
return "<pre>No data found</pre>"
if widget_type == "slotsTopN":
return render_slots_top_n_widget(event=event, input_df=input_df)
if widget_type == "sessionAttributesTopN":
return render_session_attributes_top_n_widget(event=event, input_df=input_df)
raise RuntimeError(f"unknown widget type: {widget_type}")