From 3b4e4539d8b56de6a7cccb2e9c8455f34a5289f6 Mon Sep 17 00:00:00 2001 From: Mariusz Nowak Date: Wed, 15 Dec 2021 12:18:54 +0100 Subject: [PATCH] fix(AWS Lambda): Fix event config setup for provisioned lambdas --- lib/plugins/aws/package/compile/functions.js | 1 + .../lib/plugins/aws/package/compile/functions.test.js | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/lib/plugins/aws/package/compile/functions.js b/lib/plugins/aws/package/compile/functions.js index f81788cf49a..4d878b63a2e 100644 --- a/lib/plugins/aws/package/compile/functions.js +++ b/lib/plugins/aws/package/compile/functions.js @@ -638,6 +638,7 @@ class AwsCompileFunctions { DestinationConfig: destinationConfig, Qualifier: functionObject.targetAlias ? functionObject.targetAlias.name : '$LATEST', }, + DependsOn: _.get(functionObject.targetAlias, 'logicalId'), }; if (maximumEventAge) { diff --git a/test/unit/lib/plugins/aws/package/compile/functions.test.js b/test/unit/lib/plugins/aws/package/compile/functions.test.js index 811c3302e74..57bee6e6556 100644 --- a/test/unit/lib/plugins/aws/package/compile/functions.test.js +++ b/test/unit/lib/plugins/aws/package/compile/functions.test.js @@ -1921,6 +1921,11 @@ describe('lib/plugins/aws/package/compile/functions/index.test.js', () => { handler: 'target.handler', layers: [{ Ref: 'ExternalLambdaLayer' }], }, + fnProvisioned: { + handler: 'trigger.handler', + maximumRetryAttempts: 0, + provisionedConcurrency: 1, + }, }, resources: { Resources: { @@ -2231,12 +2236,17 @@ describe('lib/plugins/aws/package/compile/functions/index.test.js', () => { it('should support `functions[].maximumRetryAttempts`', () => { const maximumRetryAttempts = serviceConfig.functions.fnMaximumRetryAttempts.maximumRetryAttempts; + expect(maximumRetryAttempts).to.be.a('number'); expect( cfResources[naming.getLambdaEventConfigLogicalId('fnMaximumRetryAttempts')].Properties .MaximumRetryAttempts ).to.equal(maximumRetryAttempts); + + expect(cfResources[naming.getLambdaEventConfigLogicalId('fnProvisioned')].DependsOn).to.equal( + naming.getLambdaProvisionedConcurrencyAliasLogicalId('fnProvisioned') + ); }); it('should support `functions[].fileSystemConfig` (with vpc configured on function)', () => {