-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathensembl2symbol.py
More file actions
30 lines (24 loc) · 925 Bytes
/
ensembl2symbol.py
File metadata and controls
30 lines (24 loc) · 925 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from http import HTTPStatus
import json
import os
from aws_lambda_powertools.logging.logger import Logger
from aws_lambda_powertools.utilities import parameters
import psycopg2
logger = Logger()
db_login = json.loads(parameters.get_secret(os.environ.get("RDS_SECRET")))
connection = psycopg2.connect(
user=db_login["username"], password=db_login["password"],
host=os.environ.get("DB_HOST"), database=os.environ.get("DB_NAME")
)
@logger.inject_lambda_context(log_event=True)
def lambda_handler(event, context):
sql = 'SELECT DISTINCT ensembl_id, symbol FROM ensembl2symbol WHERE ensembl_id IS NOT null ORDER BY symbol'
with connection:
with connection.cursor() as cursor:
cursor.execute(sql)
result = cursor.fetchall()
return {
"statusCode": HTTPStatus.OK,
"headers": {"Content-Type": "application/json"},
"body": json.dumps(result)
}