From 7599b4bed3049bb9d860620762140ea1ad31a9ff Mon Sep 17 00:00:00 2001 From: molly-moen Date: Wed, 21 Sep 2022 11:39:20 -0700 Subject: [PATCH 1/6] logging updates --- api-gateway-routes/api_gateway_proxy_function.rb | 2 ++ cicd/3-app/javabuilder/template.yml.erb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/api-gateway-routes/api_gateway_proxy_function.rb b/api-gateway-routes/api_gateway_proxy_function.rb index 60cc17c7..2b8d1c0b 100644 --- a/api-gateway-routes/api_gateway_proxy_function.rb +++ b/api-gateway-routes/api_gateway_proxy_function.rb @@ -80,6 +80,8 @@ def on_connect(event, context) elsif authorizer['mini_app_type'] == 'theater' function_name = ENV['BUILD_AND_RUN_THEATER_PROJECT_LAMBDA_ARN'] else + # log so we know we saw an invalid mini app + put {connectionId: request_context["connectionId"], statusCode: 400, reason: "invalid mini-app"} return { statusCode: 400, body: "invalid mini-app" } end diff --git a/cicd/3-app/javabuilder/template.yml.erb b/cicd/3-app/javabuilder/template.yml.erb index 3175fd2a..53db695c 100644 --- a/cicd/3-app/javabuilder/template.yml.erb +++ b/cicd/3-app/javabuilder/template.yml.erb @@ -315,7 +315,7 @@ Resources: DefaultRouteSettings: DetailedMetricsEnabled: true LoggingLevel: INFO - DataTraceEnabled: true + DataTraceEnabled: false AccessLogSettings: DestinationArn: !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/apigateway/accesslog/${SubDomainName}.${BaseDomainName}" # TODO: Also log authorizer status code, authorizer error message, Javabuilder session id, and Origin. From b64ca945e3d0078e0521c75d2138604611ea0864 Mon Sep 17 00:00:00 2001 From: molly-moen Date: Wed, 21 Sep 2022 15:22:36 -0700 Subject: [PATCH 2/6] fix syntax --- api-gateway-routes/api_gateway_proxy_function.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api-gateway-routes/api_gateway_proxy_function.rb b/api-gateway-routes/api_gateway_proxy_function.rb index 2b8d1c0b..f24732c9 100644 --- a/api-gateway-routes/api_gateway_proxy_function.rb +++ b/api-gateway-routes/api_gateway_proxy_function.rb @@ -81,7 +81,12 @@ def on_connect(event, context) function_name = ENV['BUILD_AND_RUN_THEATER_PROJECT_LAMBDA_ARN'] else # log so we know we saw an invalid mini app - put {connectionId: request_context["connectionId"], statusCode: 400, reason: "invalid mini-app"} + log_data = { + connectionId: request_context["connectionId"], + statusCode: 400, + reason: "invalid mini-app" + }.to_json + puts log_data return { statusCode: 400, body: "invalid mini-app" } end From cc1cff185c519a35b29e463c01b10e03a35794fb Mon Sep 17 00:00:00 2001 From: molly-moen Date: Thu, 22 Sep 2022 10:13:15 -0700 Subject: [PATCH 3/6] update logs --- .../api_gateway_proxy_function.rb | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/api-gateway-routes/api_gateway_proxy_function.rb b/api-gateway-routes/api_gateway_proxy_function.rb index f24732c9..c430b160 100644 --- a/api-gateway-routes/api_gateway_proxy_function.rb +++ b/api-gateway-routes/api_gateway_proxy_function.rb @@ -37,12 +37,12 @@ def on_connect(event, context) # connection is made. if authorization_error_response # Add some logging to make sure we know this is happening. - puts "AUTHORIZATION ERROR: #{authorization_error_response[:body]}" + p get_formatted_log("AUTHORIZATION ERROR: #{authorization_error_response[:body]}", request_context) return { statusCode: 200, body: authorization_error_response[:body] } end - # Add in some logging to make debugging easier - puts "CONNECT REQUEST CONTEXT: #{request_context}" + # log entire request context object for debugging + p get_formatted_log("CONNECT REQUEST CONTEXT: #{request_context}", request_context) # Return early if this is the user connectivity test if is_connectivity_test(authorizer) @@ -81,13 +81,9 @@ def on_connect(event, context) function_name = ENV['BUILD_AND_RUN_THEATER_PROJECT_LAMBDA_ARN'] else # log so we know we saw an invalid mini app - log_data = { - connectionId: request_context["connectionId"], - statusCode: 400, - reason: "invalid mini-app" - }.to_json - puts log_data - return { statusCode: 400, body: "invalid mini-app" } + invalid_message = "invalid mini-app" + p get_formatted_log(invalid_message, request_context, 400) + return { statusCode: 400, body: invalid_message } end response = lambda_client.invoke({ @@ -240,4 +236,12 @@ def delete_queue(sqs_client, event, context) puts "DISCONNECT ERROR: #{e.message}" end end + + def get_formatted_log(log_message, request_context, status_code) + log_data = { + connectionId: request_context['connectionId'], + message: log_message + } + log_data[:status_code] = status_code if status_code + log_data end From c1125ad02073baf8dc212b3dcd3ad22e291a336b Mon Sep 17 00:00:00 2001 From: molly-moen Date: Thu, 22 Sep 2022 10:55:29 -0700 Subject: [PATCH 4/6] update logs --- .../api_gateway_proxy_function.rb | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/api-gateway-routes/api_gateway_proxy_function.rb b/api-gateway-routes/api_gateway_proxy_function.rb index c430b160..936b7e13 100644 --- a/api-gateway-routes/api_gateway_proxy_function.rb +++ b/api-gateway-routes/api_gateway_proxy_function.rb @@ -37,12 +37,12 @@ def on_connect(event, context) # connection is made. if authorization_error_response # Add some logging to make sure we know this is happening. - p get_formatted_log("AUTHORIZATION ERROR: #{authorization_error_response[:body]}", request_context) + puts get_formatted_log("AUTHORIZATION ERROR: #{authorization_error_response[:body]}", request_context, nil) return { statusCode: 200, body: authorization_error_response[:body] } end # log entire request context object for debugging - p get_formatted_log("CONNECT REQUEST CONTEXT: #{request_context}", request_context) + puts get_formatted_log("CONNECT REQUEST CONTEXT: #{request_context}", request_context, nil) # Return early if this is the user connectivity test if is_connectivity_test(authorizer) @@ -82,7 +82,7 @@ def on_connect(event, context) else # log so we know we saw an invalid mini app invalid_message = "invalid mini-app" - p get_formatted_log(invalid_message, request_context, 400) + puts get_formatted_log(invalid_message, request_context, 400) return { statusCode: 400, body: invalid_message } end @@ -204,7 +204,7 @@ def sqs_operation_with_retries(sqs_operation, request_context, *operation_params raise(e) if retries >= MAX_SQS_RETRIES retries += 1 sleep(sleep_time) - puts "RETRY #{retries}, just slept for #{sleep_time} seconds. Request context: #{request_context}" + puts get_formatted_log("RETRY #{retries}, just slept for #{sleep_time} seconds", request_context, nil) # double sleep time for next retry sleep_time = sleep_time * 2 retry @@ -232,16 +232,16 @@ def delete_queue(sqs_client, event, context) # This exception is expected during connectivity tests, # so do not log in those cases. unless is_connectivity_test(authorizer) - puts "DISCONNECT ERROR REQUEST CONTEXT: #{request_context}" - puts "DISCONNECT ERROR: #{e.message}" + puts get_formatted_log("DISCONNECT ERROR: #{e.message}", request_context, nil) end end - - def get_formatted_log(log_message, request_context, status_code) - log_data = { - connectionId: request_context['connectionId'], - message: log_message - } - log_data[:status_code] = status_code if status_code - log_data end + +def get_formatted_log(log_message, request_context, status_code) + log_data = { + connectionId: request_context['connectionId'], + message: log_message + } + log_data[:status_code] = status_code if status_code + log_data.to_json +end \ No newline at end of file From 72529e2713dfb809cae2f85c5018be8e902d6711 Mon Sep 17 00:00:00 2001 From: molly-moen Date: Thu, 22 Sep 2022 11:12:12 -0700 Subject: [PATCH 5/6] update formatting --- api-gateway-routes/api_gateway_proxy_function.rb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/api-gateway-routes/api_gateway_proxy_function.rb b/api-gateway-routes/api_gateway_proxy_function.rb index 936b7e13..390a1c7c 100644 --- a/api-gateway-routes/api_gateway_proxy_function.rb +++ b/api-gateway-routes/api_gateway_proxy_function.rb @@ -37,12 +37,14 @@ def on_connect(event, context) # connection is made. if authorization_error_response # Add some logging to make sure we know this is happening. - puts get_formatted_log("AUTHORIZATION ERROR: #{authorization_error_response[:body]}", request_context, nil) + puts get_formatted_log("AUTHORIZATION ERROR: #{authorization_error_response[:body]}", request_context, nil).to_json return { statusCode: 200, body: authorization_error_response[:body] } end # log entire request context object for debugging - puts get_formatted_log("CONNECT REQUEST CONTEXT: #{request_context}", request_context, nil) + request_context_log = get_formatted_log("CONNECT REQUEST CONTEXT", request_context, nil) + request_context_log[:request_context] = request_context + puts request_context_log.to_json # Return early if this is the user connectivity test if is_connectivity_test(authorizer) @@ -82,7 +84,7 @@ def on_connect(event, context) else # log so we know we saw an invalid mini app invalid_message = "invalid mini-app" - puts get_formatted_log(invalid_message, request_context, 400) + puts get_formatted_log(invalid_message, request_context, 400).to_json return { statusCode: 400, body: invalid_message } end @@ -204,7 +206,7 @@ def sqs_operation_with_retries(sqs_operation, request_context, *operation_params raise(e) if retries >= MAX_SQS_RETRIES retries += 1 sleep(sleep_time) - puts get_formatted_log("RETRY #{retries}, just slept for #{sleep_time} seconds", request_context, nil) + puts get_formatted_log("RETRY #{retries}, just slept for #{sleep_time} seconds", request_context, nil).to_json # double sleep time for next retry sleep_time = sleep_time * 2 retry @@ -232,7 +234,7 @@ def delete_queue(sqs_client, event, context) # This exception is expected during connectivity tests, # so do not log in those cases. unless is_connectivity_test(authorizer) - puts get_formatted_log("DISCONNECT ERROR: #{e.message}", request_context, nil) + puts get_formatted_log("DISCONNECT ERROR: #{e.message}", request_context, nil).to_json end end end @@ -243,5 +245,5 @@ def get_formatted_log(log_message, request_context, status_code) message: log_message } log_data[:status_code] = status_code if status_code - log_data.to_json + log_data end \ No newline at end of file From f0c7178475f2649a05a70dab0b5a7edd3f11c45c Mon Sep 17 00:00:00 2001 From: molly-moen Date: Thu, 22 Sep 2022 13:36:29 -0700 Subject: [PATCH 6/6] add newline --- api-gateway-routes/api_gateway_proxy_function.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api-gateway-routes/api_gateway_proxy_function.rb b/api-gateway-routes/api_gateway_proxy_function.rb index 390a1c7c..088620e0 100644 --- a/api-gateway-routes/api_gateway_proxy_function.rb +++ b/api-gateway-routes/api_gateway_proxy_function.rb @@ -246,4 +246,4 @@ def get_formatted_log(log_message, request_context, status_code) } log_data[:status_code] = status_code if status_code log_data -end \ No newline at end of file +end