Skip to content

Documentation for acme_config

acme_config._main

save_fetched_parameters(parameters, app_name, env, ver_number)

Save fetched parameters to a file. This function takes a dictionary of parameters and saves them to a file named using the provided application name, environment, and version number. Each parameter is written in the format key=value.

Parameters:

Name Type Description Default
parameters dict

A dictionary containing the parameters to be saved.

required
app_name str

The name of the application.

required
env str

The environment (e.g., 'dev', 'prod').

required
ver_number str

The version number of the application.

required

Returns: None

fetch_parameters(app_name, env, ver_number)

Fetches parameters from AWS Systems Manager Parameter Store for a given application, environment, and version number.

Parameters:

Name Type Description Default
app_name str

The name of the application.

required
env str

The environment (e.g., 'dev', 'prod').

required
ver_number str

The version number of the configuration.

required

Returns: dict: A dictionary containing parameter names and their corresponding values.

Source code in acme_config/aws_parameter_store.py
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def fetch_parameters(app_name, env, ver_number):
    """
    Fetches parameters from AWS Systems Manager Parameter Store for a given application, environment, and version number.

    Parameters:
        app_name (str): The name of the application.
        env (str): The environment (e.g., 'dev', 'prod').
        ver_number (str): The version number of the configuration.
    Returns:
        dict: A dictionary containing parameter names and their corresponding values.
    """

    ssm = boto3.client("ssm")
    path = f"/{app_name}/{env}/{ver_number}"

    paginator = ssm.get_paginator("get_parameters_by_path")
    parameters = {}

    for page in paginator.paginate(Path=path, Recursive=True):
        for param in page["Parameters"]:
            param_name = param["Name"].split("/")[-1]
            parameters[param_name] = param["Value"]

    return parameters

set_parameters(app_name, env, ver_number, params_dict)

Stores parameters in AWS Systems Manager Parameter Store.

Parameters:

Name Type Description Default
app_name str

The name of the application.

required
env str

The environment (e.g., 'dev', 'prod').

required
ver_number str

The version number of the application.

required
params_dict dict

A dictionary of parameter names and their corresponding values.

required

Returns: None

Source code in acme_config/aws_parameter_store.py
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
def set_parameters(app_name, env, ver_number, params_dict):
    """
    Stores parameters in AWS Systems Manager Parameter Store.

    Parameters:
        app_name (str): The name of the application.
        env (str): The environment (e.g., 'dev', 'prod').
        ver_number (str): The version number of the application.
        params_dict (dict): A dictionary of parameter names and their corresponding values.
    Returns:
        None
    """

    ssm = boto3.client("ssm")
    path = f"/{app_name}/{env}/{ver_number}"

    for param_name, param_value in params_dict.items():
        param_path = f"{path}/{param_name}"
        ssm.put_parameter(
            Name=param_path, Value=param_value, Type="String", Overwrite=False
        )