From 1e71aaeca5146ff504202622ee64cb114bdec87c Mon Sep 17 00:00:00 2001 From: "Miroslav Chomut (CZ)" Date: Wed, 14 May 2025 08:38:14 +0200 Subject: [PATCH 1/4] #37 improve logging --- src/event_gate_lambda.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/event_gate_lambda.py b/src/event_gate_lambda.py index ffdf1f8..5345566 100644 --- a/src/event_gate_lambda.py +++ b/src/event_gate_lambda.py @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # +import os import base64 import json import logging @@ -30,7 +31,8 @@ from confluent_kafka import Producer logger = logging.getLogger(__name__) -logger.setLevel(logging.INFO) +log_level = os.environ.get('LOG_LEVEL', 'INFO') +logger.setLevel(log_level) logger.addHandler(logging.StreamHandler()) with open("conf/api.yaml", "r") as file: @@ -68,11 +70,11 @@ else: EVENT_BUS_ARN = "" -logger.info("Loaded configs") +logger.debug("Loaded configs") token_public_key_encoded = requests.get(CONFIG["token_public_key_url"], verify=False).json()["key"] TOKEN_PUBLIC_KEY = serialization.load_der_public_key(base64.b64decode(token_public_key_encoded)) -logger.info("Loaded token public key") +logger.debug("Loaded token public key") producer_config = {"bootstrap.servers": CONFIG["kafka_bootstrap_server"]} if "kafka_sasl_kerberos_principal" in CONFIG and "kafka_ssl_key_path" in CONFIG: @@ -87,13 +89,13 @@ "ssl.key.location": CONFIG["kafka_ssl_key_path"], "ssl.key.password": CONFIG["kafka_ssl_key_password"] }) - logger.info("producer will use SASL_SSL") + logger.debug("producer will use SASL_SSL") kafka_producer = Producer(producer_config) -logger.info("Initialized kafka producer") +logger.debug("Initialized kafka producer") def kafka_write(topicName, message): - logger.info(f"Sending to kafka {topicName}") + logger.debug(f"Sending to kafka {topicName}") error = [] kafka_producer.produce(topicName, key="", @@ -105,10 +107,10 @@ def kafka_write(topicName, message): def event_bridge_write(topicName, message): if not EVENT_BUS_ARN: - logger.info("No EventBus Arn - skipping") + logger.debug("No EventBus Arn - skipping") return - logger.info(f"Sending to eventBridge {topicName}") + logger.debug(f"Sending to eventBridge {topicName}") response = aws_eventbridge.put_events( Entries=[ { @@ -129,14 +131,14 @@ def get_api(): } def get_token(): - logger.info("Handling GET Token") + logger.debug("Handling GET Token") return { "statusCode": 303, "headers": {"Location": TOKEN_PROVIDER_URL} } def get_topics(): - logger.info("Handling GET Topics") + logger.debug("Handling GET Topics") return { "statusCode": 200, "headers": {"Content-Type": "application/json"}, @@ -144,7 +146,7 @@ def get_topics(): } def get_topic_schema(topicName): - logger.info(f"Handling GET TopicSchema({topicName})") + logger.debug(f"Handling GET TopicSchema({topicName})") if topicName not in TOPICS: return { "statusCode": 404 } @@ -155,7 +157,7 @@ def get_topic_schema(topicName): } def post_topic_message(topicName, topicMessage, tokenEncoded): - logger.info(f"Handling POST {topicName}") + logger.debug(f"Handling POST {topicName}") try: token = jwt.decode(tokenEncoded, TOKEN_PUBLIC_KEY, algorithms=["RS256"]) except Exception as e: From 0a098d56335236cf782149ef4ec3b8bb2ed7f405 Mon Sep 17 00:00:00 2001 From: "Miroslav Chomut (CZ)" Date: Wed, 14 May 2025 08:48:33 +0200 Subject: [PATCH 2/4] tf changes --- terraform/lambda.tf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/terraform/lambda.tf b/terraform/lambda.tf index adb2b58..4bc1e20 100644 --- a/terraform/lambda.tf +++ b/terraform/lambda.tf @@ -30,4 +30,10 @@ resource "aws_lambda_function" "event_gate_lambda" { security_group_ids = [aws_security_group.event_gate_sg.id] } tags = {"BuiltBy" = "Terraform"} + + environment { + variables = { + LOG_LEVEL = "INFO" + } + } } From 7f0252e65598470ddafe678deec5b3371adc6b48 Mon Sep 17 00:00:00 2001 From: "Miroslav Chomut (CZ)" Date: Wed, 14 May 2025 10:22:42 +0200 Subject: [PATCH 3/4] tf fix --- terraform/lambda.tf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/terraform/lambda.tf b/terraform/lambda.tf index 4bc1e20..d73a884 100644 --- a/terraform/lambda.tf +++ b/terraform/lambda.tf @@ -11,6 +11,12 @@ resource "aws_vpc_security_group_egress_rule" "allow_all_traffic_ipv4" { ip_protocol = "-1" } +data "aws_s3_object" "event_gate_lambda_zip" { + count = var.lambda_package_type == "Zip" ? 1 : 0 + bucket = var.lambda_src_s3_bucket + key = var.lambda_src_s3_key +} + resource "aws_lambda_function" "event_gate_lambda" { function_name = "${var.resource_prefix}event-gate-lambda" role = var.lambda_role_arn @@ -21,7 +27,7 @@ resource "aws_lambda_function" "event_gate_lambda" { s3_bucket = var.lambda_package_type == "Zip" ? var.lambda_src_s3_bucket : null s3_key = var.lambda_package_type == "Zip" ? var.lambda_src_s3_key : null handler = var.lambda_package_type == "Zip" ? "event_gate_lambda.lambda_handler" : null - source_code_hash = var.lambda_package_type == "Zip" ? filebase64sha256("s3://${var.lambda_src_s3_bucket}/${var.lambda_src_s3_key}") : null + source_code_hash = var.lambda_package_type == "Zip" ? data.aws_s3_object.event_gate_lambda_zip[0].etag : null image_uri = var.lambda_package_type == "Image" ? var.lambda_src_ecr_image : null From 552c940e01be97c4be82b01bbcccd81f973ddb27 Mon Sep 17 00:00:00 2001 From: "Miroslav Chomut (CZ)" Date: Wed, 14 May 2025 10:41:56 +0200 Subject: [PATCH 4/4] timeout fix --- terraform/lambda.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/terraform/lambda.tf b/terraform/lambda.tf index d73a884..0eeedfa 100644 --- a/terraform/lambda.tf +++ b/terraform/lambda.tf @@ -21,6 +21,7 @@ resource "aws_lambda_function" "event_gate_lambda" { function_name = "${var.resource_prefix}event-gate-lambda" role = var.lambda_role_arn architectures = ["x86_64"] + timeout = 60 runtime = "python3.11" package_type = var.lambda_package_type