awssm参数存储的一个简单配置变量包装器
parameter-store-environ的Python项目详细描述
PS环境
说明
这是awssm参数存储的一个简单包装器。它被设计用来缓存和解析特定服务和阶段的参数存储中的变量。 它深受django-environ的启发,并共享一个(简化的)接口。
有关参数存储的更多信息,请阅读AWS documentation。
安装
安装时使用pip
:
pip install parameter-store-environ
用法
包装器假设参数存储中的变量采用以下格式:
/<SERVICE>/<STAGE>/<VARIABLE_NAME>
例如:
/api/dev/DEBUG
/api/prod/DB_HOST
包装器对变量名是不可知的,但我们建议您遵循环境变量的约定,并使用所有大写和下划线。
在“设置/配置”模块中,导入该模块并创建包装器的新实例
fromps_environimportEnvconfig=Env(service='api',stage='dev')# When called directly, the string value is returnedassertconfig('DEBUG')=='True'# Use casting methods to return the type you needassertconfig.bool('DEBUG')==True
模式
您可以在实例化包装器时定义模式,以避免调用转换方法
config=Env(service='api',stage='dev',schema={'DEBUG':bool,'MAX_RETRIES':int,})assertconfig('DEBUG')==Trueassertconfig('MAX_RETRIES')==5
支持的转换类型:bool、float、int、set、list、tuple、json
附加说明:
list, tuple, set
:这些类型期望值用逗号分隔。例如1,2,3
json
:需要常规json字符串。例如{'foo': 'bar'}
环境变量覆盖
如果变量也是在环境中设置的,则该值将优先。
默认值
可以通过设置默认关键字来设置默认值。
如果未设置默认值,并且该值既不在环境变量中也不在参数存储中,则将引发ImproperlyConfigured
异常。
assertconfig('DB_HOST',default='localhost')=='localhost'
AWS证书
ps-environ
使用boto3
与参数存储接口,因此使用相同的身份验证机制。
有关详细信息,请参阅boto 3文档中的configuring credentials。