aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/extract_lambda.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/extract_lambda.py b/src/extract_lambda.py
index fb2d7e8..3055f63 100644
--- a/src/extract_lambda.py
+++ b/src/extract_lambda.py
@@ -1,5 +1,4 @@
-from pg8000.native import Connection, DatabaseError, InterfaceError
-from dotenv import dotenv_values
+from pg8000.native import Connection, InterfaceError
import boto3
import csv
from botocore.exceptions import ClientError
@@ -42,31 +41,35 @@ def lambda_handler(event, context):
'statusCode': 200,
'body': json.dumps('CSV files processed and uploaded successfully.')
}
-
except Exception as e:
logger.error(f'Error: {e}')
return {
'statusCode': 500,
'body': json.dumps('Internal server error.')
}
-
finally:
-
if db:
db.close()
-def get_config(path: str = ".env") -> dict:
- return dotenv_values(path)
+def retrieve_secrets(sm_client=boto3.client('secretsmanager'), secret_name='bentley-secrets'):
+ try:
+ response = sm_client.get_secret_value(SecretId=secret_name)
+ if 'SecretString' in response:
+ secret = json.loads(response['SecretString'])
+ return secret
+ except ClientError as e:
+ logger.error(f'Could not retrieve secrets: {e}')
+ raise e
def connect_to_database() -> Connection:
try:
- config = get_config()
- host = config["host"]
- port = config["port"]
- user = config["user"]
- password = config["password"]
- database = config["database"]
+ secrets = retrieve_secrets()
+ host = secrets["host"]
+ port = secrets["port"]
+ user = secrets["user"]
+ password = secrets["password"]
+ database = secrets["database"]
return Connection(
database=database,
git.ajschof.me — hosted by ajschofield — powered by cgit