Skip to content

Commit c2d4dba

Browse files
author
Frank Schmid
committed
Prepare 1.2.0. Added small fix for authorizers.
1 parent 53fa162 commit c2d4dba

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ contains its entire configuration (VPC settings, environment, etc.)
304304
## For developers
305305
### Lifecycle events
306306

307-
_currently the exposed hooks are disabled after the change to the new SLS lifecycle model_
307+
_currently the exposed hooks are not available after the change to the new SLS lifecycle model_
308308

309309
The plugin adds the following lifecycle events that can be hooked by other plugins:
310310

@@ -341,6 +341,11 @@ and _serverless.service.provider.deployedAliasTemplates[]_.
341341

342342
## Version history
343343

344+
* 1.2.0
345+
* Fix issue when stage is specified as Serverless variable [#45](https://github.com/HyperBrain/serverless-aws-alias/issues/45)
346+
* Add support for SNS Lambda subscriptions [#43](https://github.com/HyperBrain/serverless-aws-alias/issues/43)
347+
* Add support for custom authorizers [#22](https://github.com/HyperBrain/serverless-aws-alias/issues/22)
348+
344349
* 1.1.0
345350
* Use stage variable in APIG [#40](https://github.com/HyperBrain/serverless-aws-alias/issues/40)
346351
* Fix tail logging [#42](https://github.com/HyperBrain/serverless-aws-alias/issues/42)

lib/stackops/apiGateway.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
const _ = require('lodash');
1010
const BbPromise = require('bluebird');
11+
const utils = require('../utils');
1112

1213
module.exports = function(currentTemplate, aliasStackTemplates, currentAliasStackTemplate) {
1314
const stackName = this._provider.naming.getStackName();
@@ -142,7 +143,25 @@ module.exports = function(currentTemplate, aliasStackTemplates, currentAliasStac
142143
delete userResources.Resources[name];
143144
}
144145

145-
stageStack.Resources[name] = authorizer;
146+
const aliasedName = `${name}${this._alias}`;
147+
const authorizerRefs = utils.findReferences(stageStack.Resources, name);
148+
_.forEach(authorizerRefs, ref => {
149+
_.set(stageStack.Resources, ref, { Ref: aliasedName });
150+
});
151+
152+
// Replace dependencies
153+
_.forOwn(stageStack.Resources, resource => {
154+
if (_.isString(resource.DependsOn) && resource.DependsOn === name) {
155+
resource.DependsOn = aliasedName;
156+
} else if (_.isArray(resource.DependsOn) && _.includes(resource.DependsOn, name)) {
157+
_.pull(resource.DependsOn, name);
158+
resource.DependsOn.push(aliasedName);
159+
}
160+
});
161+
162+
// Rename authorizer to be unique per alias
163+
stageStack.Resources[aliasedName] = authorizer;
164+
delete stageStack.Resources[name];
146165
});
147166

148167
// Adjust permission to reference the function aliases

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "serverless-aws-alias",
3-
"version": "1.1.0",
3+
"version": "1.2.0",
44
"description": "Serverless plugin to support AWS function aliases",
55
"main": "index.js",
66
"repository": {

0 commit comments

Comments
 (0)