A Node.js library that reads JSON from AWS Parameter Store.
Meant to be used in conjunction with aws-parameter-store-json-writer.
via npm
npm install aws-parameter-store-json-reader
const AwsParameterStoreJsonReader = require('aws-parameter-store-json-reader');
const parameterReader = new AwsParameterStoreJsonReader({
"apiVersion": '2014-11-06',
});
async function readConfig(path) {
return await parameterReader.read(path);
}
readConfig("/ContentManagement/ContentManagementAggregator");
// {
// "dev": {
// "db": {
// "username": "dev-user",
// "password": "secret-password"
// },
// "tags": ["dev", "database"],
// "ids": ["12", "42", "128"],
// "objs": [{ "entry": "1" }, { "entry": "2" }, { "entry": "3" }]
// },
// "prod": {
// "db": {
// "username": "prod-user",
// "password": "super-secret-password"
// }
// }
// };
The above assumes that the values in the path adhere to the JSON structure provided by aws-parameter-store-json-writer. e.g.
Name | Type | Key ID | Value |
---|---|---|---|
/ContentManagement/ContentManagementAggregator/dev/db/username |
String | - | dev-user |
/ContentManagement/ContentManagementAggregator/dev/db/password |
SecureString | arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e | "secret-password" |
/ContentManagement/ContentManagementAggregator/dev/tags |
StringList | - | "dev", "database" |
/ContentManagement/ContentManagementAggregator/dev/ids |
StringList | - | "12", "42", "128" |
/ContentManagement/ContentManagementAggregator/dev/objs/0/entry |
String | - | "1" |
/ContentManagement/ContentManagementAggregator/dev/objs/1/entry |
String | - | "2" |
/ContentManagement/ContentManagementAggregator/dev/objs/2/entry |
String | - | "3" |
/ContentManagement/ContentManagementAggregator/prod/db/username |
String | - | "prod-user" |
/ContentManagement/ContentManagementAggregator/prod/db/password |
SecureString | arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e | "super-secret-password" |
apiVersion – (optional) The version of the AWS API you wish to be using.
This library uses the Semver versioning system. The numbers do not relate to maturity but the number of breaking changes introduced.