"""Provide access to secrets manager.""" import json import boto3 from sales.constants.exceptions import WorkerFailureError def fetch_credentials(name): """Fetch Credentials from SecretsManager.""" response = boto3.client('secretsmanager').get_secret_value(SecretId=name) if 'SecretString' not in response: raise WorkerFailureError('SecretsManager value not in response') secret_values = json.loads(response['SecretString']) return { 'user': secret_values.get('user'), 'password': secret_values.get('password'), 'host': secret_values.get('host'), 'database': secret_values.get('database'), 'port': int(secret_values.get('port', 3306)) }