aws-ssm-parameter-store
Version:
This package resolve parameters from AWS SSM Parameter Store.
55 lines (54 loc) • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const aws_sdk_1 = require("aws-sdk");
/**
* Extract the parameter needed
*
* @param result
* @return {object}
*/
function extractParameters(parameters, result) {
console.log('Invoke Extract Parameters, From Parameter Store Results ');
const parameterStore = {};
(result.Parameters || []).forEach(parameter => {
Object.entries(parameters).forEach(p => {
if (p[1] === parameter.Name) {
parameterStore[p[0]] = parameter.Value;
}
});
});
return parameterStore;
}
/**
* Reuest parameters from aws parameter store
*
* @param parameters
* @return {Promise}
*/
function requestParameters(parameters, configuration) {
console.log('Invoke Request Parameter, From Parameter Store');
const ssm = new aws_sdk_1.SSM(configuration);
const parametersKey = {
Names: Object.values(parameters),
WithDecryption: true
};
return ssm.getParameters(parametersKey).promise();
}
/**
* Get parameters from parameter store
*
* @return {Promise<>}
*/
async function getParameterStore(parameters, configuration = { apiVersion: '2014-11-06' }) {
console.log('Invoke Get Parameter, From Parameter Store');
try {
const result = await requestParameters(parameters, configuration);
console.log('Success when getting parameters from parameter store,');
return extractParameters(parameters, result);
}
catch (error) {
console.log('Failed when getting parameters from parameter store,', error);
throw { code: 400, message: 'An error occurred when getting parameter from parameter store' };
}
}
exports.getParameterStore = getParameterStore;