-
Notifications
You must be signed in to change notification settings - Fork 2
/
aws.js
41 lines (37 loc) · 1.3 KB
/
aws.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
require('dotenv').config()
var AWS = require('aws-sdk'),
region = "us-west-1",
secretName = process.env.AWS_SECRET_NAME,
secret,
decodedBinarySecret;
var client = new AWS.SecretsManager({
region: region
});
const getSecretValue = () => {
return new Promise((resolve, reject) => {
client.getSecretValue({SecretId: secretName}, function(err, data) {
if (err) {
if (err.code === 'DecryptionFailureException')
reject(err);
else if (err.code === 'InternalServiceErrorException')
reject(err);
else if (err.code === 'InvalidParameterException')
reject(err);
else if (err.code === 'InvalidRequestException')
reject(err);
else if (err.code === 'ResourceNotFoundException')
reject(err);
}
else {
if ('SecretString' in data) {
secret = data.SecretString;
} else {
let buff = new Buffer(data.SecretBinary, 'base64');
decodedBinarySecret = buff.toString('ascii');
resolve(decodedBinarySecret)
}
}
});
})
}
module.exports = getSecretValue;