2020logger = logging .getLogger (__name__ )
2121
2222
23- logger .info ("fetching pgstac secret" )
24- secret = get_secret_dict (secret_arn_env_var = "PGSTAC_SECRET_ARN" )
25- postgres_settings = PostgresSettings (
26- pghost = secret ["host" ],
27- pgdatabase = secret ["dbname" ],
28- pguser = secret ["username" ],
29- pgpassword = secret ["password" ],
30- pgport = int (secret ["port" ]),
31- )
32-
3323_connection_initialized = False
3424
3525
26+ def _build_postgres_settings () -> PostgresSettings :
27+ """Fetch credentials from Secrets Manager and build PostgresSettings."""
28+ logger .info ("fetching pgstac secret" )
29+ secret = get_secret_dict (secret_arn_env_var = "PGSTAC_SECRET_ARN" )
30+ return PostgresSettings (
31+ pghost = secret ["host" ],
32+ pgdatabase = secret ["dbname" ],
33+ pguser = secret ["username" ],
34+ pgpassword = secret ["password" ],
35+ pgport = int (secret ["port" ]),
36+ )
37+
38+
3639@register_before_snapshot
3740def on_snapshot ():
3841 """
@@ -90,6 +93,7 @@ def on_snap_restore():
9093 app .state .writepool = None
9194
9295 # Create fresh connection pool
96+ postgres_settings = _build_postgres_settings ()
9397 loop .run_until_complete (
9498 connect_to_db (
9599 app ,
@@ -111,6 +115,7 @@ def on_snap_restore():
111115async def startup_event ():
112116 """Connect to database on startup."""
113117 logger .info ("Setting up DB connection..." )
118+ postgres_settings = _build_postgres_settings ()
114119 await connect_to_db (
115120 app ,
116121 postgres_settings = postgres_settings ,
@@ -145,7 +150,7 @@ async def shutdown_event():
145150 loop .run_until_complete (
146151 connect_to_db (
147152 app ,
148- postgres_settings = postgres_settings ,
153+ postgres_settings = _build_postgres_settings () ,
149154 add_write_connection_pool = with_transactions ,
150155 )
151156 )
0 commit comments