0.1.0 • Published 8 years ago
cloud-functions-config v0.1.0
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-configusesprocess.env.GCP_PROJECTto find out which bucket to fetch the config from.- once the
config.jsonfile has been fetched the JSON key-values are added toprocess.envunder keys prefixed withcfc__).
Prerequisites
- a GCS bucket named
[project-ID]-config-privatethat your cloud functions has permission to read from (this should be enabled by default) - a file
config.jsonstored within the above bucket
Usage
npm i cloud-functions-configconst { initConfig, getConfig } = require('cloud-functions-config')
// initConfig will only requests config from GCS if none has been set yet
initConfig()
.then(config => {
// app logic
console.log(config)
// { token: 'xxxxxx', ... }
})