UNPKG

serverless-consul-variables

Version:
102 lines (71 loc) 3.25 kB
# serverless-consul-variables [![Build Status](https://travis-ci.org/zephrax/serverless-consul-variables.svg?branch=master)](https://travis-ci.org/zephrax/serverless-consul-variables) [![Coverage Status](https://coveralls.io/repos/github/zephrax/serverless-consul-variables/badge.svg?branch=master)](https://coveralls.io/github/zephrax/serverless-consul-variables?branch=master) [![devDependency Status](https://david-dm.org/zephrax/serverless-consul-variables/dev-status.svg)](https://david-dm.org/zephrax/serverless-consul-variables#info=devDependencies) [![Dependency Status](https://david-dm.org/zephrax/serverless-consul-variables.svg)](https://david-dm.org/zephrax/serverless-consul-variables) This [Serverless](https://github.com/serverless/serverless) plugin allows you to populate environment variables from a Consul server. This is done at build time. ## Documentation - [Installation](#installation) - [Contributing](#contributing) - [License](#license) ## Installation First install the plugin using npm or yarn ```bash npm install serverless-consul-variables --save-dev #or yarn add -D serverless-consul-variables ``` Then inside of your project's `serverless.yml` file add the following to the plugins section. You should change the consul host & port to match your build environment. **FYI**: It defaults to this values with no need to put them in `serverless.yml`. If you use other values, please, put what you need here. ```yaml custom: serverless-consul-variables: consul_settings: host: 127.0.0.1 port: 8500 service: enable_registration: true enpdoint_filters: '^api(.*)' consul_endpoint_key_path: 'dev_test/serverless/endpoints' plugins: - serverless-consul-variables ``` To reference a consul variable, you must prefix it with ${consul:}. For example: ```yaml environment: SOME_VARIABLE: ${consul:path/to/kv/variable} ``` ======= ### Service Registration in Consul KV The parent for this options is ```service``` under the custom ```serverless-consul-variables``` structure. If enabled in ```enable_registration: true``` the service will be added to a KV of your choice. Defaults to ```false``` The full path should be in ```consul_endpoint_key_path``` #### Endpoint filters For now it only support one filter. The basic usage is to select the function you want to register in case there are more than one. Usage: ```enpdoint_filters: '^api(.*)'``` will only return the functions starting with api. Let's assume this case: ```yaml functions: Controller1: handler: handler.default events: - http: path: api method: post Controller2: handler: tasks.apigw events: - http: path: task method: post ``` Now setting the filter to ```api``` as above, will only register the function with api in the path. **TODO**: Support for multiple and more intelligent filters. ## Contributors - [brahama](https://github.com/brahama) ## Contributing Pull requests are always welcome. Please see the [contributing](https://github.com/zephrax/serverless-consul-variables/blob/master/CONTRIBUTING.md) guidelines. ## License [MIT](https://github.com/zephrax/serverless-consul-variables/blob/master/LICENSE)