`konfetti` 为用Python编写的应用程序或库提供了配置的框架无关方式。
项目描述
描述
konfetti 是一个Python配置管理库,简化了将您的应用程序配置为在公司基础设施上运行的过程。
此库将帮助您从Vault检索机密,管理对需要我们监控服务的设置(如Datadog和Sentry)的访问,并设置测试以评估应用程序的行为。
Konfetti通过懒加载管理应用程序的配置设置:它只调用和配置应用程序需要的内容,并在需要时进行。
主要优势
可配置的懒加载评估 - 您可以选择Konfetti评估应用程序配置的时间。
更快的测试执行 - 如果整个项目未使用,则无需评估整个项目的配置。
更快且灵活的测试 - 隔离应用程序的较小部分不再需要为每个测试执行完整设置。
与流行的Web应用程序框架集成 - Konfetti可以无缝与Django、Flask和Celery一起工作。
快速入门
在Konfetti执行任务之前,您需要创建一个设置模块,然后告诉Konfetti该模块的位置。
1. 创建设置模块
请使用以下路径查找应用程序设置,适用于您的生产、本地或其他环境:app_name/settings/production.py
接下来,请查看下面的代码块,并在您的设置文件中复制相关部分。
> :warning: 变量名必须全部大写,其他变量将被忽略
> :warning: 如果您的应用程序需要Vault访问,则需要在设置模块中指定`VAULT_ADDR`和`VAULT_TOKEN`
# app_name/settings/production.py
from konfetti import env, vault
VAULT_ADDR = env("VAULT_ADDR")
VAULT_TOKEN = env("VAULT_TOKEN")
DEBUG = env("DEBUG", default=False)
DATABASE_URI = vault("path/to/db")
除了导入语句from konfetti import env, vault之外,您可以删除您不使用的功能设置。
例如,如果您不使用数据库,则可以删除变量DATABASE_URI。根据您的设置,它也可能被称为DB_URI或类似名称。
此外,如果您的应用程序不需要机密信息,则可以删除变量VAULT_ADDR和VAULT_TOKEN。
2. 配置访问点
# app_name/settings/__init__.py
from konfetti import Konfig, AsyncVaultBackend
config = Konfig(vault_backend=AsyncVaultBackend("/secret/team"))
在您的应用程序环境变量中,请添加KONFETTI_SETTINGS变量,并指定设置模块的路径。在上述代码块的情况下,它是
export KONFETTI_SETTINGS=app_name.settings.production
或者,访问点可以从对象、可导入的字符串、映射或JSON文件启动
对象
class TestSettings:
VALUE = "secret"
config = Konfig.from_object(TestSettings, ...)
可导入的字符串
config = Konfig.from_object("path.to.settings", ...)
# If the config is in the same module
SECRET = vault("/path/to")["secret"]
config = Konfig.from_object(__name__, ...)
映射
config = Konfig.from_mapping({"SECRET": 42}, ...)
JSON
config = Konfig.from_json("/path/to.json")
用法
带有配置选项的设置模块/类不应直接访问,因为这些功能是在访问点级别实现的。
from app_name.settings import config
async def something():
await config.DATABASE_URI # asynchronously taken from Vault
debug = config.DEBUG # Usual sync access
文档
有关完整文档,请参阅https://konfetti.readthedocs.io/en/latest/
或者您可以在仓库中的docs/目录下查看。
Python支持
Konfetti支持Python 2.7、3.5、3.6、3.7和3.8
许可证
此项目的代码采用MIT许可证。通过向konfetti做出贡献,您同意您的贡献将根据其MIT许可证进行许可。
项目详情
下载文件
下载适合您的平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。