parameter-store
This is a tiny package comprised of three utility functions to handle loading environmental variables/secrets from AWS SSM.
loadEnv can be used to load environmental variables from SSM at a particular path/hierarchy into process.env.
patchEnv patches a plain object with values from AWS SSM using the syntax { SUPER_SECRET: "${ssm:/app/SECRET}" }
patchJson patches a json configuration file using patchEnv.
Example
Basic Usage
loadEnv(path: string, config: { region: 'us-east-1' }) => Promise<{}>
loads environmental variables at a hierarchy into process.env.
const loadEnv =
patchEnv(environment: {}) => Promise<{}>
Takes a plain object, where some values are expected to refer to an SSM parameter using the familiar serverless syntax: "${ssm:PATH_TO_ENV_VAR}".
const patchEnv = const env = "PORT": "3000" "API_KEY": "${ssm:/app/API_KEY}"
patchJson(path: string, key: string | Array<string>, config: { 'us-east-1' }) => Promise<() => void>
- path: path to a json configuration file
- key: a key to get the environment object to mutate (uses lodash.get)
- config: AWS configuration for
new AWS.SSM(config)
Returns a restore function that restores the json configuration file to its original state.
in up.json:
const patchJson =