def get_secret()

in Solutions/AWSSCV-VoicemailExpress/Code/awsscv_vmx_presigner/awsscv_vmx_presigner.py [0:0]


def get_secret():
    # Set vars
    secret_response = {}
    try:
        secret_name = os.environ['secrets_key_id']
        region_name = os.environ['aws_region']

    except Exception as e:
        logger.error(e)
        secret_response.update({'result':'fail'})
        secret_response.update({'detail':'environment vars failed'})
        return secret_response

    # Create a Secrets Manager session
    try:
        session = boto3.session.Session()
        client = session.client(
            service_name='secretsmanager',
            region_name=region_name
        )

    except Exception as e:
        logger.error(e)
        secret_response.update({'result':'fail'})
        secret_response.update({'detail':'AWS Secrets Manager session failed'})
        return secret_response

    try:
        get_secret_value_response = client.get_secret_value(
            SecretId=secret_name
        )

    except Exception as e:
        logger.error(e)
        secret_response.update({'result':'fail'})
        secret_response.update({'detail':'failed to get secrets'})
        return secret_response

    else:
        if 'SecretString' in get_secret_value_response:
            secret = get_secret_value_response['SecretString']
        else:
            decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])

    secret_response.update(json.loads(secret))

    return secret_response