aws-param-store
Module for loading parameter-store values from AWS SSM
Features
- Gets parameters by name(s) or path
- Recursively resolves paths and decodes parameters by default
- Paginates results automatically
- Supports both synchronous and asynchronous querying of parameters
- Uses Promises for asynchronous calls
- Can run inside AWS Lambda environment
- AWS Lambda Node.js 8.10.x compatible
- Lightweight and does not require additional dependencies other than the AWS-SDK
Installation
Install via npm.
npm install aws-param-store --save
Note: aws-param-store
does not contain a dependency on aws-sdk
and it should be installed within your application.
Getting Started
const awsParamStore = ; awsParamStore ;
If your AWS region is not set in your environment variables, then it can be set programmatically by supplying
options when calling newQuery()
:
const awsParamStore = ; awsParamStore ;
API
Overview
Most API method calls in this library have both asynchronous and synchronous versions.
When an asynchronous version is called, a Promise is returned to resolve the value
once the operation completes. When an options
parameter is allowed, it can be used
to specify specific AWS service options such as the region. All of the
getParameter*
methods will request that the values are decoded. If you require
further control, please use the parameterQuery()
method.
getParameter( name [, options] )
Gets a parameter by name. This method returns a promise that resolves the Parameter.
const awsParamStore = ; awsParamStore ;
getParameterSync( name [, options] )
Gets a parameter by name. This method will block until the operation completes.
const awsParamStore = ; let parameter = awsParamStore; // Parameter info object for '/project1/my-parameter'
getParameters( names [, options] )
Gets one or more parameters by name. This method returns a promise that resolves
an object that contains Parameters
and InvalidParameters
.
const awsParamStore = ; awsParamStore ;
getParametersSync( names [, options] )
Gets one or more parameters by name. This method will
block until the operation completes, and will return an object that contains
Parameters
and InvalidParameters
.
const awsParamStore = ; let results = awsParamStore; // results.Parameters will contain an array of parameters that were found// results.InvalidParameters will contain an array of parameters that were// not found
getParametersByPath( path [, options] )
Gets parameters by recursively traversing the supplied path. This method returns a promise that resolves the parameters that were found.
const awsParamStore = ; awsParamStore ;
getParametersByPathSync( path [, options] )
Gets parameters by recursively traversing the supplied path. This method will block until the operation completes, and will return a list of matching parameters.
const awsParamStore = ; let parameters = awsParamStore; // parameters contains an array of parameter objects
putParameter( name, value, type [, options] )
Puts parameter. This method returns a promise that resolves to the version returned back.
const awsParamStore = ; awsParamStore ;
putParameterSync( name, value , type [, options] )
Puts parameter. This method. This method will block until the version returned back.
const awsParamStore = ; let results = awsParamStore;
ParameterQuery
Instances of ParameterQuery
can be created by calling parameterQuery( [options] )
.
This object is implementation behind the getParameter*
methods, and allows further
control over how the calls are made to resolve parameters.
ParameterQuery.path( p )
Sets the path name not be queried. Returns a reference to the ParameterQuery
instance.
ParameterQuery.named( name )
Sets the name or names (if an array) to be queried. Returns a reference to the
ParameterQuery
instance.
ParameterQuery.decryption( enabled = true )
Indicates that the decryption of the values is enabled/disabled. Returns a
reference to the ParameterQuery
instance.
ParameterQuery.recursive( enabled = true )
Enables or disables recursive operations when resolving parameters by path.
Returns a reference to the ParameterQuery
instance.
ParameterQuery.execute()
Executes the query based on path or name(s) that were selected. Returns a Promise that resolves the parameter results.
ParameterQuery.executeSync()
Executes the query based on path or name(s) that were selected. This operation will block until complete.
Feedback
We'd love to get feedback on how to make this tool better. Feel free to contact
us at feedback@vandium.io