Source code for terminusgps.aws.secrets

import json

import boto3
import botocore.exceptions


[docs] def get_secret(name: str, region: str = "us-east-1") -> dict[str, str]: """ Returns a secret value by name from AWS `secretsmanager`_. :param name: An AWS `secretsmanager`_ name. :type name: :py:obj:`str` :param region: An AWS region name. Default is :py:obj:`"us-east-1"`. :type region: :py:obj:`str` :returns: A secret value dictionary. :rtype: :py:obj:`dict`[:py:obj:`str`, :py:obj:`str`] .. _secretsmanager: https://docs.aws.amazon.com/secretsmanager/ """ try: session = boto3.Session(profile_name="terminusgps-site-role") client = session.client(service_name="secretsmanager", region_name=region) secret = client.get_secret_value(**{"SecretId": name})["SecretString"] return json.loads(secret) except botocore.exceptions.ProfileNotFound: return {}