A configuration client for AWS serverless Python systems
Project description
A simple configuration client for AWS serverless Python systems.
Quickstart
from serverless_config import default_config
config = default_config()
string_prop = config.get_str('string_prop')
int_prop = condfig.get_int('missing_int_prop', default_value=123)
The default config will search for a parameter with the following order of precedence: System Environment, AWS SSM Parameter Store. You can learn more about them below.
Supported Config Sources
System Environment
The System environment is a good place to store microservice-specific parameters. They are set on the lambda function itself.
from serverless_config import env_config
config = env_config()
config.get_str('string_prop')
AWS SSM Parameter Store
SSM is perfect for storing parameters that are shared across microservices. It is fully managed, and does not require any configuration to get started.
Note: the IAM role requires the AmazonSSMReadOnlyAccess policy to get properties from SSM.
from serverless_config import ssm_config
config = ssm_config()
config.get_str('string_prop')
Composite Configs
The default_config will first search in the system environment. If the parameter is not there, then it will search in AWS SSM.
from serverless_config import default_config
config = default_config()
Custom Configs
You can even implement your own custom configs and composite configs!
from serverless_config import ConfigBase, custom_composite_config, env_config
class DictConfig(ConfigBase):
def __init__(self, prop_dict):
self.prop_dict = prop_dict
def get_str(prop_name, default_value=None):
if prop_name in self.prop_dict:
return self.prop_dict[prop_name]
elif default_value:
return default_value
# You must raise a ValueError if the property is not found
raise ValueError('Property not found: ' + prop_name)
# You can make a standalone custom config
props = dict(foo='bar', toll='troll')
map_config = DictConfig(props)
# And you can make a custom composite config with your new config
custom_config = custom_composite_config(map_config, env_config())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for serverless-config-0.1.5.dev4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | da02afb65394b291f648b35d0d80e66f4ccfaa66cd3bfddd49dfd36ad267e2ce |
|
MD5 | 41aceae5911a8edcff34758103599c9f |
|
BLAKE2b-256 | 809f0345229cfc24c1208ea6b11f3e8e8063fca11926d8b8bac0378d26e26022 |
Hashes for serverless_config-0.1.5.dev4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ed0fc12026df460fab65403d26948ae26367a7b61629118f547a8b464782cb7 |
|
MD5 | 043142ee0de1f20ded0e22bd0db4314e |
|
BLAKE2b-256 | 83d9c4367ecb9b4237ebd04a4cc8987ac82345352fd700f4ca438859ba53d222 |