Cloud Functions Config from GCS
Configure your cloud functions with a per-project (per-env) secret JSON file hosted on GCS
Background
In the GCP docs it is implied that you should set up one project per environment:
We recommend that you spend some time planning your project IDs for manageability. A typical project ID naming convention might use the following pattern:
[company tag]-[group tag]-[system name]-[environment (dev, test, uat, stage, prod)]
Method
cloud-functions-config
usesprocess.env.GCP_PROJECT
to find out which bucket to fetch the config from.- once the
config.json
file has been fetched the JSON key-values are added toprocess.env
under keys prefixed withcfc__
).
Prerequisites
- a GCS bucket named
[project-ID]-config-private
that your cloud functions has permission to read from (this should be enabled by default) - a file
config.json
stored within the above bucket
Usage
npm i cloud-functions-config
const initConfig getConfig = // initConfig will only requests config from GCS if none has been set yet