Skip to content

Commit 315a298

Browse files
authored
#37 improve logging (#38)
1 parent 1644cf9 commit 315a298

File tree

2 files changed

+28
-13
lines changed

2 files changed

+28
-13
lines changed

src/event_gate_lambda.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16+
import os
1617
import base64
1718
import json
1819
import logging
@@ -30,7 +31,8 @@
3031
from confluent_kafka import Producer
3132

3233
logger = logging.getLogger(__name__)
33-
logger.setLevel(logging.INFO)
34+
log_level = os.environ.get('LOG_LEVEL', 'INFO')
35+
logger.setLevel(log_level)
3436
logger.addHandler(logging.StreamHandler())
3537

3638
with open("conf/api.yaml", "r") as file:
@@ -68,11 +70,11 @@
6870
else:
6971
EVENT_BUS_ARN = ""
7072

71-
logger.info("Loaded configs")
73+
logger.debug("Loaded configs")
7274

7375
token_public_key_encoded = requests.get(CONFIG["token_public_key_url"], verify=False).json()["key"]
7476
TOKEN_PUBLIC_KEY = serialization.load_der_public_key(base64.b64decode(token_public_key_encoded))
75-
logger.info("Loaded token public key")
77+
logger.debug("Loaded token public key")
7678

7779
producer_config = {"bootstrap.servers": CONFIG["kafka_bootstrap_server"]}
7880
if "kafka_sasl_kerberos_principal" in CONFIG and "kafka_ssl_key_path" in CONFIG:
@@ -87,13 +89,13 @@
8789
"ssl.key.location": CONFIG["kafka_ssl_key_path"],
8890
"ssl.key.password": CONFIG["kafka_ssl_key_password"]
8991
})
90-
logger.info("producer will use SASL_SSL")
92+
logger.debug("producer will use SASL_SSL")
9193

9294
kafka_producer = Producer(producer_config)
93-
logger.info("Initialized kafka producer")
95+
logger.debug("Initialized kafka producer")
9496

9597
def kafka_write(topicName, message):
96-
logger.info(f"Sending to kafka {topicName}")
98+
logger.debug(f"Sending to kafka {topicName}")
9799
error = []
98100
kafka_producer.produce(topicName,
99101
key="",
@@ -105,10 +107,10 @@ def kafka_write(topicName, message):
105107

106108
def event_bridge_write(topicName, message):
107109
if not EVENT_BUS_ARN:
108-
logger.info("No EventBus Arn - skipping")
110+
logger.debug("No EventBus Arn - skipping")
109111
return
110112

111-
logger.info(f"Sending to eventBridge {topicName}")
113+
logger.debug(f"Sending to eventBridge {topicName}")
112114
response = aws_eventbridge.put_events(
113115
Entries=[
114116
{
@@ -129,22 +131,22 @@ def get_api():
129131
}
130132

131133
def get_token():
132-
logger.info("Handling GET Token")
134+
logger.debug("Handling GET Token")
133135
return {
134136
"statusCode": 303,
135137
"headers": {"Location": TOKEN_PROVIDER_URL}
136138
}
137139

138140
def get_topics():
139-
logger.info("Handling GET Topics")
141+
logger.debug("Handling GET Topics")
140142
return {
141143
"statusCode": 200,
142144
"headers": {"Content-Type": "application/json"},
143145
"body": json.dumps([topicName for topicName in TOPICS])
144146
}
145147

146148
def get_topic_schema(topicName):
147-
logger.info(f"Handling GET TopicSchema({topicName})")
149+
logger.debug(f"Handling GET TopicSchema({topicName})")
148150
if topicName not in TOPICS:
149151
return { "statusCode": 404 }
150152

@@ -155,7 +157,7 @@ def get_topic_schema(topicName):
155157
}
156158

157159
def post_topic_message(topicName, topicMessage, tokenEncoded):
158-
logger.info(f"Handling POST {topicName}")
160+
logger.debug(f"Handling POST {topicName}")
159161
try:
160162
token = jwt.decode(tokenEncoded, TOKEN_PUBLIC_KEY, algorithms=["RS256"])
161163
except Exception as e:

terraform/lambda.tf

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,24 @@ resource "aws_vpc_security_group_egress_rule" "allow_all_traffic_ipv4" {
1111
ip_protocol = "-1"
1212
}
1313

14+
data "aws_s3_object" "event_gate_lambda_zip" {
15+
count = var.lambda_package_type == "Zip" ? 1 : 0
16+
bucket = var.lambda_src_s3_bucket
17+
key = var.lambda_src_s3_key
18+
}
19+
1420
resource "aws_lambda_function" "event_gate_lambda" {
1521
function_name = "${var.resource_prefix}event-gate-lambda"
1622
role = var.lambda_role_arn
1723
architectures = ["x86_64"]
24+
timeout = 60
1825
runtime = "python3.11"
1926
package_type = var.lambda_package_type
2027

2128
s3_bucket = var.lambda_package_type == "Zip" ? var.lambda_src_s3_bucket : null
2229
s3_key = var.lambda_package_type == "Zip" ? var.lambda_src_s3_key : null
2330
handler = var.lambda_package_type == "Zip" ? "event_gate_lambda.lambda_handler" : null
24-
source_code_hash = var.lambda_package_type == "Zip" ? filebase64sha256("s3://${var.lambda_src_s3_bucket}/${var.lambda_src_s3_key}") : null
31+
source_code_hash = var.lambda_package_type == "Zip" ? data.aws_s3_object.event_gate_lambda_zip[0].etag : null
2532

2633
image_uri = var.lambda_package_type == "Image" ? var.lambda_src_ecr_image : null
2734

@@ -30,4 +37,10 @@ resource "aws_lambda_function" "event_gate_lambda" {
3037
security_group_ids = [aws_security_group.event_gate_sg.id]
3138
}
3239
tags = {"BuiltBy" = "Terraform"}
40+
41+
environment {
42+
variables = {
43+
LOG_LEVEL = "INFO"
44+
}
45+
}
3346
}

0 commit comments

Comments
 (0)