Module allows to replace elements of object/structure with variables from AWS Parameter Store.
This module is commonly used with Config generation that will make you application deployment simpler as well as independent from deployment environment.
npm install aws-ssm-inject-params --save
import awsSsm from 'aws-ssm-inject-params';
Prepare object with placeholder starting with: aws-ssm:/
const data = {
apiUrl: 'aws-ssm://application/message',
enabled: true,
}
Using the module:
const dataWithValue = awsSsm.getValuesFromSsm(data);
console.log(dataWithValue);
should print you data structure as below:
{
apiUrl: 'Hello AWS-SSM World !',
enabled: true
}
Prepare object with placeholder starting with: aws-ssm:/ and separating parameter store part with suffix by | e.g.
const data = {
apiUrl: 'aws-ssm://my-service/host|/user/details',
enabled: true,
}
presuming aws-ssm://my-service/host is defined and equals to:
result will be:
const data = {
apiUrl: 'http://superuser.org/user/details',
enabled: true,
}
Prepare object with placeholder starting with: aws-ssm-json:/ e.g.
const data = {
apiUrl: 'aws-ssm-json://my-service/json-serialized-object',
enabled: 'aws-ssm-json://my-service/json-boolean-enabled',
}
presuming /my-service/json-serialized-objec is a valid JSON object:
'{"intValue": 123, "stringValue": "value", "list": [1,2,3,4,5]}'
and /my-service/json-boolean-enabled is just string of "true" or "false" it would be converted to boolean json.
"true"
If string is not a valid JSON string error is thrown:
Could not JSON parse /my-service/json-serialized-object => {"intValue": 123
If given placeholder cannot be found in parameter store exception is thrown:
const data = {
apiUrl: 'aws-ssm://no/such/value',
enabled: true,
}
will throw below Error:
Path /no/such/value not found in parameter store!'
aws ssm put-parameter --name '/application/message' --value 'Hello AWS-SSM World !' --type 'String'
aws ssm get-parameters --names "/application/message"
{
"Parameters": [
{
"Name": "/application/message",
"Type": "String",
"Value": "Hello AWS-SSM World !"
}
],
"InvalidParameters": []
}
Please export AWS Region
export AWS_REGION='eu-west-1'
or if your system already has AWS_DEFAULT_REGION
export AWS_REGION=$AWS_DEFAULT_REGION