Skip to content

Commit c67add1

Browse files
committed
chore: upgrade logging to make it serverless@3.x compliant
1 parent dbae1dd commit c67add1

4 files changed

Lines changed: 41 additions & 29 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ Before using this plugin you must have set your parameters into [AWS System Mana
1010
* ssm:Get*
1111
* ssm:List*
1212

13+
## Versions
14+
15+
* For serverless framework **v2**: use serverless-ssm-fetch@**1.x**
16+
* For serverless framework **v3**: use serverless-ssm-fetch@**2.x**
17+
18+
1319
## Setup
1420

1521
First, you have to set `serverless-ssm-fetch` plugin by running:

dist/serverless-ssm-fetch.js

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
1717
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1818

1919
var SsmFetch = function () {
20-
function SsmFetch(serverless, options) {
20+
function SsmFetch(serverless, options, _ref) {
2121
var _this = this;
2222

23+
var log = _ref.log;
24+
2325
_classCallCheck(this, SsmFetch);
2426

2527
this.serverless = serverless;
@@ -53,19 +55,23 @@ var SsmFetch = function () {
5355
return _this._triggeredFromHook ? BbPromise.resolve() : BbPromise.reject(new Error('Internal use only'));
5456
},
5557
'serverless-ssm-fetch:parameter:get': function serverlessSsmFetchParameterGet() {
56-
return BbPromise.bind(_this).then(_this.getParameter).then(_this.assignParameter);
58+
return BbPromise.bind(_this).then(function () {
59+
return _this.getParameter(log);
60+
}).then(function () {
61+
return _this.assignParameter(log);
62+
});
5763
}
5864
};
5965
}
6066

6167
_createClass(SsmFetch, [{
6268
key: 'getParameter',
63-
value: function getParameter() {
69+
value: function getParameter(log) {
6470
var _this2 = this;
6571

6672
return new Promise(function (resolve, reject) {
6773

68-
_this2.serverless.cli.log('> serverless-ssm-fetch: Get parameters...');
74+
log.info('> serverless-ssm-fetch: Get parameters...');
6975

7076
// Instantiate an AWS.SSM client()
7177
var ssmClient = new _awsSdk2.default.SSM({ region: _this2.serverless.service.provider.region });
@@ -100,9 +106,9 @@ var SsmFetch = function () {
100106

101107
// Triggers the `getParameter`request to AWS.SSM
102108
ssmClient.getParameter(params, function (err, data) {
103-
self.serverless.cli.log('> serverless-ssm-fetch: Fetching "' + parameter + ': ' + ssmParameters[parameter] + '" ...');
109+
log.info('> serverless-ssm-fetch: Fetching "' + parameter + ': ' + ssmParameters[parameter] + '"...');
104110
if (err) {
105-
self.serverless.cli.log('> serverless-ssm-fetch: ' + err);
111+
log.error('> serverless-ssm-fetch: ' + err);
106112
reject(err);
107113
} else {
108114
self.serverless.serverlessSsmFetch[parameter] = data.Parameter.Value;
@@ -114,19 +120,19 @@ var SsmFetch = function () {
114120

115121
// Triggers all `getParameter` queries concurrently
116122
Promise.all(promiseCollection).then(function (success) {
117-
_this2.serverless.cli.log('> serverless-ssm-fetch: Get parameters success. Fetched SSM parameters:');
118-
_this2.serverless.cli.log(JSON.stringify(Object.keys(_this2.serverless.serverlessSsmFetch)));
123+
log.info('> serverless-ssm-fetch: Get parameters success. Fetched SSM parameters:');
124+
log.info(JSON.stringify(Object.keys(_this2.serverless.serverlessSsmFetch), null, 2));
119125
return resolve(success);
120126
}).catch(function (error) {
121-
_this2.serverless.cli.log('> serverless-ssm-fetch: Get parameter: ERROR');
122-
_this2.serverless.cli.log(error);
127+
log.error('> serverless-ssm-fetch: Get parameter: ERROR');
128+
log.error(error);
123129
return reject(error);
124130
});
125131
});
126132
}
127133
}, {
128134
key: 'assignParameter',
129-
value: function assignParameter() {
135+
value: function assignParameter(log) {
130136
var _this3 = this;
131137

132138
// forEach function to deploy
@@ -164,7 +170,8 @@ var SsmFetch = function () {
164170
});
165171
}
166172

167-
_this3.serverless.cli.log('> serverless-ssm-fetch: Function "' + functionName + '" set environment variables: ' + JSON.stringify(Object.keys(currentFunction.environment)));
173+
log.info('> serverless-ssm-fetch: Function "' + functionName + '" set environment variables:');
174+
log.info(JSON.stringify(Object.keys(currentFunction.environment), null, 2));
168175
});
169176
}
170177
}, {

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "serverless-ssm-fetch",
3-
"version": "1.1.2",
3+
"version": "2.0.0",
44
"main": "dist/serverless-ssm-fetch.js",
55
"description": "Sets \"AWS Systems Manager Parameter Store (SSM)\" parameters into functions' environment variables.",
66
"scripts": {
@@ -12,7 +12,7 @@
1212
"bluebird": "^3.7.2"
1313
},
1414
"peerDependencies": {
15-
"serverless": "^2.11.0"
15+
"serverless": "^3.0.0"
1616
},
1717
"devDependencies": {
1818
"babel-cli": "^6.26.0",

src/serverless-ssm-fetch.js

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import AWS from 'aws-sdk';
55

66
class SsmFetch {
77

8-
constructor(serverless, options) {
8+
constructor(serverless, options, { log }) {
99
this.serverless = serverless;
1010
this.options = options;
1111

@@ -31,25 +31,23 @@ class SsmFetch {
3131
}
3232
};
3333

34-
35-
3634
this.hooks = {
3735
'after:package:cleanup': () => {
3836
this._triggeredFromHook = true;
3937
return this.serverless.pluginManager.run(['serverless-ssm-fetch', 'parameter'])
4038
},
4139
'serverless-ssm-fetch:parameter:validate': () => this._triggeredFromHook ? BbPromise.resolve() : BbPromise.reject(new Error('Internal use only')),
4240
'serverless-ssm-fetch:parameter:get': () => BbPromise.bind(this)
43-
.then(this.getParameter)
44-
.then(this.assignParameter)
41+
.then(() => this.getParameter(log))
42+
.then(() => this.assignParameter(log))
4543
}
4644
}
4745

48-
getParameter() {
46+
getParameter(log) {
4947

5048
return new Promise((resolve, reject) => {
5149

52-
this.serverless.cli.log('> serverless-ssm-fetch: Get parameters...');
50+
log.info('> serverless-ssm-fetch: Get parameters...');
5351

5452
// Instantiate an AWS.SSM client()
5553
let ssmClient = new AWS.SSM({region: this.serverless.service.provider.region});
@@ -84,9 +82,9 @@ class SsmFetch {
8482

8583
// Triggers the `getParameter`request to AWS.SSM
8684
ssmClient.getParameter(params, function (err, data) {
87-
self.serverless.cli.log('> serverless-ssm-fetch: Fetching "' + parameter + ': ' + ssmParameters[parameter] + '" ...');
85+
log.info(`> serverless-ssm-fetch: Fetching "${parameter}: ${ssmParameters[parameter]}"...`);
8886
if (err) {
89-
self.serverless.cli.log('> serverless-ssm-fetch: ' + err);
87+
log.error(`> serverless-ssm-fetch: ${err}`);
9088
reject(err);
9189
} else {
9290
self.serverless.serverlessSsmFetch[parameter] = data.Parameter.Value;
@@ -101,21 +99,21 @@ class SsmFetch {
10199
// Triggers all `getParameter` queries concurrently
102100
Promise.all(promiseCollection)
103101
.then((success) => {
104-
this.serverless.cli.log('> serverless-ssm-fetch: Get parameters success. Fetched SSM parameters:');
105-
this.serverless.cli.log(JSON.stringify(Object.keys(this.serverless.serverlessSsmFetch)));
102+
log.info('> serverless-ssm-fetch: Get parameters success. Fetched SSM parameters:');
103+
log.info(JSON.stringify(Object.keys(this.serverless.serverlessSsmFetch), null, 2));
106104
return resolve(success);
107105
})
108106
.catch((error) => {
109-
this.serverless.cli.log('> serverless-ssm-fetch: Get parameter: ERROR');
110-
this.serverless.cli.log(error);
107+
log.error('> serverless-ssm-fetch: Get parameter: ERROR');
108+
log.error(error);
111109
return reject(error);
112110
});
113111

114112
});
115113

116114
}
117115

118-
assignParameter() {
116+
assignParameter(log) {
119117

120118
// forEach function to deploy
121119
Object.keys(this.serverless.service.functions).forEach((functionName) => {
@@ -154,7 +152,8 @@ class SsmFetch {
154152

155153
}
156154

157-
this.serverless.cli.log('> serverless-ssm-fetch: Function "' + functionName + '" set environment variables: ' + JSON.stringify(Object.keys(currentFunction.environment)));
155+
log.info(`> serverless-ssm-fetch: Function "${functionName}" set environment variables:`);
156+
log.info(JSON.stringify(Object.keys(currentFunction.environment), null, 2));
158157

159158
});
160159

0 commit comments

Comments
 (0)