diff options
| author | Ellie <ecsymonds@gmail.com> | 2024-08-23 14:35:36 +0100 |
|---|---|---|
| committer | Ellie <ecsymonds@gmail.com> | 2024-08-23 14:35:36 +0100 |
| commit | 0f8f376fe806ea72f056356cc043213f61159697 (patch) | |
| tree | d1425f885bb7af1740a8fb159814887bb45f471a /src/load_lambda.py | |
| parent | 0c95b93303dea04e18aefe57e3b6fef7e4127c3c (diff) | |
| download | de-project-bentley-0f8f376fe806ea72f056356cc043213f61159697.tar.gz de-project-bentley-0f8f376fe806ea72f056356cc043213f61159697.zip | |
add retrieve secrets function
Diffstat (limited to 'src/load_lambda.py')
| -rw-r--r-- | src/load_lambda.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/load_lambda.py b/src/load_lambda.py index a9d5ac5..2dc90ba 100644 --- a/src/load_lambda.py +++ b/src/load_lambda.py @@ -40,10 +40,29 @@ def lambda_handler(event, context): logger.error(f"Error: {e}", exc_info=True) return {"statusCode": 500, "body": json.dumps("Internal server error.")} +def retrieve_secrets(): + secret_name = "bentley-RDS-credentials" + region_name = "eu-west-2" + + # Create a Secrets Manager client + session = boto3.session.Session() + client = session.client(service_name="secretsmanager", region_name=region_name) + + try: + get_secret_value_response = client.get_secret_value(SecretId=secret_name) + except ClientError as e: + logger.error(f"Failed to retrieve secret {secret_name}: {str(e)}") + raise e + except KeyError: + logger.error(f"Secret {secret_name} does not contain a SecretString") + raise ValueError(f"Secret {secret_name} does not contain a SecretString") + + return get_secret_value_response["SecretString"] + # connect to database, slightly different way of doing it, to allow manipulation through pandas def connect_to_db_and_return_engine(): try: - secrets = json.loads(retrieve_secrets("bentley-RDS-credentials")) #need to amend retrieve secrets function + secrets = json.loads(retrieve_secrets()) host = secrets["host"] port = secrets["port"] user = secrets["user"] |
