Skip to content

Commit 696c24a

Browse files
author
Aleksander Dikanski
committed
Seperate code path for referenced authorizers permissions
1 parent 931e541 commit 696c24a

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

lib/stackops/apiGateway.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,12 @@ module.exports = function(currentTemplate, aliasStackTemplates, currentAliasStac
266266
const functionName = _.replace(name, /LambdaPermissionApiGateway$/, '');
267267
const versionName = _.find(_.keys(versions), version => _.startsWith(version, functionName));
268268
const aliasName = _.find(_.keys(aliases), alias => _.startsWith(alias, functionName));
269-
269+
const isExternalRef = _.startsWith(permission.Properties.FunctionName, 'arn:aws:lambda');
270+
270271
// Adjust references and alias permissions
271-
permission.Properties.FunctionName = aliasName ? { Ref: aliasName } : permission.Properties.FunctionName;
272+
if (!isExternalRef) {
273+
permission.Properties.FunctionName = { Ref: aliasName };
274+
}
272275
if (permission.Properties.SourceArn) {
273276
// Authorizers do not set the SourceArn property
274277
permission.Properties.SourceArn = {
@@ -286,9 +289,13 @@ module.exports = function(currentTemplate, aliasStackTemplates, currentAliasStac
286289
]
287290
};
288291
}
289-
292+
290293
// Add dependency on function version
291-
permission.DependsOn = _.compact([ versionName, aliasName ]);
294+
if (!isExternalRef) {
295+
permission.DependsOn = [ versionName, aliasName ];
296+
} else {
297+
permission.DependsOn = _.compact([ versionName, aliasName ]);
298+
}
292299

293300
delete stageStack.Resources[name];
294301
});

0 commit comments

Comments
 (0)