Cloud Deployment
Backend Configuration
sfs-settings provides a more flexible approach to keyring backend configuration:
app_config.py
import re
import keyring
from keyring_aws import AWSKeyring
from keyring_gcp import GCPKeyring
# Register different backends for different secret services
keyring.register_backend_for_service(
"AWS-*", # Any service starting with AWS-
lambda: AWSKeyring()
)
keyring.register_backend_for_service(
re.compile(r"GCP-.*"), # Regex pattern for GCP services
lambda: GCPKeyring()
)
# Use the default system keyring for anything else
keyring.register_default_backend(lambda: keyring.backends.SecretService.Keyring())
# Now in your code, secrets will automatically use the right backend
from sfs_settings import set_secret_var_locally
# Uses AWS backend
set_secret_var_locally("AWS_SECRET", "AWS-MyApp", "aws_secret")
# Uses GCP backend
set_secret_var_locally("GCP_SECRET", "GCP-MyApp", "gcp_secret")
# Uses default backend
set_secret_var_locally("LOCAL_SECRET", "MyApp", "local_secret")