diff --git a/conf/config.json b/conf/config.json index 85643f6..06d37b8 100644 --- a/conf/config.json +++ b/conf/config.json @@ -1,6 +1,6 @@ { - "accessConfig": "conf/access.json", - "topicsConfig": "conf/topics.json", + "accessConfig": "s3:///access.json", + "topicsConfig": "s3:///topics.json", "tokenProviderUrl": "https://", "tokenPublicKeyUrl": "https://", "kafkaBootstrapServer": "localhost:9092" diff --git a/src/event_gate_lambda.py b/src/event_gate_lambda.py index eafa15b..210b750 100644 --- a/src/event_gate_lambda.py +++ b/src/event_gate_lambda.py @@ -24,19 +24,35 @@ import jwt import requests +import boto3 from confluent_kafka import Producer with open("conf/config.json", "r") as file: CONFIG = json.load(file) -with open(CONFIG["topicsConfig"], "r") as file: - TOPICS = json.load(file) +aws_session = boto3.Session() +aws_s3 = aws_session.resource('s3', verify=False) -with open(CONFIG["accessConfig"], "r") as file: - ACCESS = json.load(file) +if CONFIG["topicsConfig"].startswith("s3://"): + name_parts = CONFIG["topicsConfig"].split('/') + bucket_name = name_parts[2] + bucket_object = "/".join(name_parts[3:]) + TOPICS = json.loads(aws_s3.Bucket(bucket_name).Object(bucket_object).get()["Body"].read().decode("utf-8")) +else: + with open(CONFIG["topicsConfig"], "r") as file: + TOPICS = json.load(file) + +if CONFIG["accessConfig"].startswith("s3://"): + name_parts = CONFIG["accessConfig"].split('/') + bucket_name = name_parts[2] + bucket_object = "/".join(name_parts[3:]) + ACCESS = json.loads(aws_s3.Bucket(bucket_name).Object(bucket_object).get()["Body"].read().decode("utf-8")) +else: + with open(CONFIG["accessConfig"], "r") as file: + ACCESS = json.load(file) TOKEN_PROVIDER_URL = CONFIG["tokenProviderUrl"] -print("Loaded config") +print("Loaded configs") token_public_key_encoded = requests.get(CONFIG["tokenPublicKeyUrl"], verify=False).json()["key"] TOKEN_PUBLIC_KEY = serialization.load_der_public_key(base64.b64decode(token_public_key_encoded)) diff --git a/src/requirements.txt b/src/requirements.txt index 30abd9f..6411363 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -3,4 +3,5 @@ cryptography jsonschema PyJWT requests +boto3 confluent_kafka \ No newline at end of file