diff --git a/packages/@aws-cdk/aws-lambda/README.md b/packages/@aws-cdk/aws-lambda/README.md index b3e118e4f1b10..f1b4d22719bc3 100644 --- a/packages/@aws-cdk/aws-lambda/README.md +++ b/packages/@aws-cdk/aws-lambda/README.md @@ -283,19 +283,6 @@ const version = new lambda.Version(this, 'MyVersion', { }); ``` -Or setting the `currentVersionOptions` when creating a new lambda - -```ts -new lambda.Function(this, 'MyVersionedLambda', { - runtime: lambda.Runtime.NODEJS_18_X, - handler: 'index.handler', - code: lambda.Code.fromAsset(path.join(__dirname, 'lambda-handler')), - currentVersionOptions: { - provisionedConcurrentExecutions: 3, - }, -}); -``` - The major caveat to know here is that a function version must always point to a specific 'version' of the function. When the function is modified, the version will continue to point to the 'then version' of the function. diff --git a/packages/@aws-cdk/aws-lambda/lib/function.ts b/packages/@aws-cdk/aws-lambda/lib/function.ts index a39a8fe7a9ea5..ced52e6cb5459 100644 --- a/packages/@aws-cdk/aws-lambda/lib/function.ts +++ b/packages/@aws-cdk/aws-lambda/lib/function.ts @@ -870,9 +870,6 @@ export class Function extends FunctionBase { } this.currentVersionOptions = props.currentVersionOptions; - if (props.currentVersionOptions) { - this.currentVersion; - } if (props.filesystem) { if (!props.vpc) { diff --git a/packages/@aws-cdk/aws-lambda/test/function.test.ts b/packages/@aws-cdk/aws-lambda/test/function.test.ts index e16e17198bbf3..ade698e81d93f 100644 --- a/packages/@aws-cdk/aws-lambda/test/function.test.ts +++ b/packages/@aws-cdk/aws-lambda/test/function.test.ts @@ -3047,31 +3047,6 @@ describe('function', () => { }); }); - test('Generates a version when currentVersionOptions is set', () => { - const stack = new cdk.Stack(); - - new lambda.Function(stack, 'MyLambda', { - code: new lambda.InlineCode('foo'), - handler: 'index.handler', - runtime: lambda.Runtime.NODEJS_14_X, - currentVersionOptions: { - provisionedConcurrentExecutions: 3, - }, - }); - - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::Version', { - ProvisionedConcurrencyConfig: { - ProvisionedConcurrentExecutions: 3, - }, - }); - - Template.fromStack(stack).hasResourceProperties('AWS::Lambda::Function', { - Code: { ZipFile: 'foo' }, - Handler: 'index.handler', - Runtime: 'nodejs14.x', - }); - }); - test('adds ADOT instrumentation to a ZIP Lambda function', () => { // GIVEN const app = new cdk.App(); diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/CurrentVersionOptionsDefaultTestDeployAssertF66C8354.assets.json b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/CurrentVersionOptionsDefaultTestDeployAssertF66C8354.assets.json deleted file mode 100644 index 944bb1b8ee642..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/CurrentVersionOptionsDefaultTestDeployAssertF66C8354.assets.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "version": "22.0.0", - "files": { - "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": { - "source": { - "path": "CurrentVersionOptionsDefaultTestDeployAssertF66C8354.template.json", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - } - }, - "dockerImages": {} -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/CurrentVersionOptionsDefaultTestDeployAssertF66C8354.template.json b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/CurrentVersionOptionsDefaultTestDeployAssertF66C8354.template.json deleted file mode 100644 index ad9d0fb73d1dd..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/CurrentVersionOptionsDefaultTestDeployAssertF66C8354.template.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "Parameters": { - "BootstrapVersion": { - "Type": "AWS::SSM::Parameter::Value", - "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" - } - }, - "Rules": { - "CheckBootstrapVersion": { - "Assertions": [ - { - "Assert": { - "Fn::Not": [ - { - "Fn::Contains": [ - [ - "1", - "2", - "3", - "4", - "5" - ], - { - "Ref": "BootstrapVersion" - } - ] - } - ] - }, - "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." - } - ] - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/cdk.out b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/cdk.out deleted file mode 100644 index 145739f539580..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/cdk.out +++ /dev/null @@ -1 +0,0 @@ -{"version":"22.0.0"} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/current-version-options.assets.json b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/current-version-options.assets.json deleted file mode 100644 index 22942b1c5c086..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/current-version-options.assets.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "version": "22.0.0", - "files": { - "a37f787b341d3d57968efec7be372be0c175afbeae09ab1909503e7a7f7dc6b8": { - "source": { - "path": "current-version-options.template.json", - "packaging": "file" - }, - "destinations": { - "current_account-current_region": { - "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}", - "objectKey": "a37f787b341d3d57968efec7be372be0c175afbeae09ab1909503e7a7f7dc6b8.json", - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}" - } - } - } - }, - "dockerImages": {} -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/current-version-options.template.json b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/current-version-options.template.json deleted file mode 100644 index 9826778f6ba00..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/current-version-options.template.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "Resources": { - "FServiceRole3AC82EE1": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "ManagedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "FC4345940": { - "Type": "AWS::Lambda::Function", - "Properties": { - "Code": { - "ZipFile": "\n exports.handler = async(event) => {\n return \"My versioned lambda\";\n };\n " - }, - "Role": { - "Fn::GetAtt": [ - "FServiceRole3AC82EE1", - "Arn" - ] - }, - "Handler": "index.handler", - "Runtime": "nodejs14.x" - }, - "DependsOn": [ - "FServiceRole3AC82EE1" - ] - }, - "FCurrentVersion58B8A55Dc23085bc26dff8641d9434d378493303": { - "Type": "AWS::Lambda::Version", - "Properties": { - "FunctionName": { - "Ref": "FC4345940" - }, - "ProvisionedConcurrencyConfig": { - "ProvisionedConcurrentExecutions": 3 - } - } - } - }, - "Parameters": { - "BootstrapVersion": { - "Type": "AWS::SSM::Parameter::Value", - "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" - } - }, - "Rules": { - "CheckBootstrapVersion": { - "Assertions": [ - { - "Assert": { - "Fn::Not": [ - { - "Fn::Contains": [ - [ - "1", - "2", - "3", - "4", - "5" - ], - { - "Ref": "BootstrapVersion" - } - ] - } - ] - }, - "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." - } - ] - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/integ.json b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/integ.json deleted file mode 100644 index 7dda851e5ec00..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/integ.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": "22.0.0", - "testCases": { - "CurrentVersionOptions/DefaultTest": { - "stacks": [ - "current-version-options" - ], - "assertionStack": "CurrentVersionOptions/DefaultTest/DeployAssert", - "assertionStackName": "CurrentVersionOptionsDefaultTestDeployAssertF66C8354" - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/manifest.json b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/manifest.json deleted file mode 100644 index 0358446afe01c..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/manifest.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "version": "22.0.0", - "artifacts": { - "current-version-options.assets": { - "type": "cdk:asset-manifest", - "properties": { - "file": "current-version-options.assets.json", - "requiresBootstrapStackVersion": 6, - "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" - } - }, - "current-version-options": { - "type": "aws:cloudformation:stack", - "environment": "aws://unknown-account/unknown-region", - "properties": { - "templateFile": "current-version-options.template.json", - "validateOnSynth": false, - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", - "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/a37f787b341d3d57968efec7be372be0c175afbeae09ab1909503e7a7f7dc6b8.json", - "requiresBootstrapStackVersion": 6, - "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", - "additionalDependencies": [ - "current-version-options.assets" - ], - "lookupRole": { - "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", - "requiresBootstrapStackVersion": 8, - "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" - } - }, - "dependencies": [ - "current-version-options.assets" - ], - "metadata": { - "/current-version-options/F/ServiceRole/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "FServiceRole3AC82EE1" - } - ], - "/current-version-options/F/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "FC4345940" - } - ], - "/current-version-options/F/CurrentVersion/Resource": [ - { - "type": "aws:cdk:logicalId", - "data": "FCurrentVersion58B8A55Dc23085bc26dff8641d9434d378493303" - } - ], - "/current-version-options/BootstrapVersion": [ - { - "type": "aws:cdk:logicalId", - "data": "BootstrapVersion" - } - ], - "/current-version-options/CheckBootstrapVersion": [ - { - "type": "aws:cdk:logicalId", - "data": "CheckBootstrapVersion" - } - ] - }, - "displayName": "current-version-options" - }, - "CurrentVersionOptionsDefaultTestDeployAssertF66C8354.assets": { - "type": "cdk:asset-manifest", - "properties": { - "file": "CurrentVersionOptionsDefaultTestDeployAssertF66C8354.assets.json", - "requiresBootstrapStackVersion": 6, - "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" - } - }, - "CurrentVersionOptionsDefaultTestDeployAssertF66C8354": { - "type": "aws:cloudformation:stack", - "environment": "aws://unknown-account/unknown-region", - "properties": { - "templateFile": "CurrentVersionOptionsDefaultTestDeployAssertF66C8354.template.json", - "validateOnSynth": false, - "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-deploy-role-${AWS::AccountId}-${AWS::Region}", - "cloudFormationExecutionRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-cfn-exec-role-${AWS::AccountId}-${AWS::Region}", - "stackTemplateAssetObjectUrl": "s3://cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}/21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json", - "requiresBootstrapStackVersion": 6, - "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version", - "additionalDependencies": [ - "CurrentVersionOptionsDefaultTestDeployAssertF66C8354.assets" - ], - "lookupRole": { - "arn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-lookup-role-${AWS::AccountId}-${AWS::Region}", - "requiresBootstrapStackVersion": 8, - "bootstrapStackVersionSsmParameter": "/cdk-bootstrap/hnb659fds/version" - } - }, - "dependencies": [ - "CurrentVersionOptionsDefaultTestDeployAssertF66C8354.assets" - ], - "metadata": { - "/CurrentVersionOptions/DefaultTest/DeployAssert/BootstrapVersion": [ - { - "type": "aws:cdk:logicalId", - "data": "BootstrapVersion" - } - ], - "/CurrentVersionOptions/DefaultTest/DeployAssert/CheckBootstrapVersion": [ - { - "type": "aws:cdk:logicalId", - "data": "CheckBootstrapVersion" - } - ] - }, - "displayName": "CurrentVersionOptions/DefaultTest/DeployAssert" - }, - "Tree": { - "type": "cdk:tree", - "properties": { - "file": "tree.json" - } - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/tree.json b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/tree.json deleted file mode 100644 index 3c2b3b015cfbe..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.js.snapshot/tree.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "version": "tree-0.1", - "tree": { - "id": "App", - "path": "", - "children": { - "current-version-options": { - "id": "current-version-options", - "path": "current-version-options", - "children": { - "F": { - "id": "F", - "path": "current-version-options/F", - "children": { - "ServiceRole": { - "id": "ServiceRole", - "path": "current-version-options/F/ServiceRole", - "children": { - "ImportServiceRole": { - "id": "ImportServiceRole", - "path": "current-version-options/F/ServiceRole/ImportServiceRole", - "constructInfo": { - "fqn": "@aws-cdk/core.Resource", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "current-version-options/F/ServiceRole/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::IAM::Role", - "aws:cdk:cloudformation:props": { - "assumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "lambda.amazonaws.com" - } - } - ], - "Version": "2012-10-17" - }, - "managedPolicyArns": [ - { - "Fn::Join": [ - "", - [ - "arn:", - { - "Ref": "AWS::Partition" - }, - ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ] - ] - } - ] - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-iam.CfnRole", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-iam.Role", - "version": "0.0.0" - } - }, - "Resource": { - "id": "Resource", - "path": "current-version-options/F/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Function", - "aws:cdk:cloudformation:props": { - "code": { - "zipFile": "\n exports.handler = async(event) => {\n return \"My versioned lambda\";\n };\n " - }, - "role": { - "Fn::GetAtt": [ - "FServiceRole3AC82EE1", - "Arn" - ] - }, - "handler": "index.handler", - "runtime": "nodejs14.x" - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnFunction", - "version": "0.0.0" - } - }, - "CurrentVersion": { - "id": "CurrentVersion", - "path": "current-version-options/F/CurrentVersion", - "children": { - "Resource": { - "id": "Resource", - "path": "current-version-options/F/CurrentVersion/Resource", - "attributes": { - "aws:cdk:cloudformation:type": "AWS::Lambda::Version", - "aws:cdk:cloudformation:props": { - "functionName": { - "Ref": "FC4345940" - }, - "provisionedConcurrencyConfig": { - "provisionedConcurrentExecutions": 3 - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.CfnVersion", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.Version", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/aws-lambda.Function", - "version": "0.0.0" - } - }, - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "current-version-options/BootstrapVersion", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnParameter", - "version": "0.0.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "current-version-options/CheckBootstrapVersion", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnRule", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.Stack", - "version": "0.0.0" - } - }, - "CurrentVersionOptions": { - "id": "CurrentVersionOptions", - "path": "CurrentVersionOptions", - "children": { - "DefaultTest": { - "id": "DefaultTest", - "path": "CurrentVersionOptions/DefaultTest", - "children": { - "Default": { - "id": "Default", - "path": "CurrentVersionOptions/DefaultTest/Default", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.168" - } - }, - "DeployAssert": { - "id": "DeployAssert", - "path": "CurrentVersionOptions/DefaultTest/DeployAssert", - "children": { - "BootstrapVersion": { - "id": "BootstrapVersion", - "path": "CurrentVersionOptions/DefaultTest/DeployAssert/BootstrapVersion", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnParameter", - "version": "0.0.0" - } - }, - "CheckBootstrapVersion": { - "id": "CheckBootstrapVersion", - "path": "CurrentVersionOptions/DefaultTest/DeployAssert/CheckBootstrapVersion", - "constructInfo": { - "fqn": "@aws-cdk/core.CfnRule", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.Stack", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests.IntegTestCase", - "version": "0.0.0" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/integ-tests.IntegTest", - "version": "0.0.0" - } - }, - "Tree": { - "id": "Tree", - "path": "Tree", - "constructInfo": { - "fqn": "constructs.Construct", - "version": "10.1.168" - } - } - }, - "constructInfo": { - "fqn": "@aws-cdk/core.App", - "version": "0.0.0" - } - } -} \ No newline at end of file diff --git a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.ts b/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.ts deleted file mode 100644 index 3f440150fe947..0000000000000 --- a/packages/@aws-cdk/aws-lambda/test/integ.current-version-options.ts +++ /dev/null @@ -1,26 +0,0 @@ -import * as cdk from '@aws-cdk/core'; -import * as integ from '@aws-cdk/integ-tests'; -import * as lambda from '../lib'; - -const app = new cdk.App(); - -const stack = new cdk.Stack(app, 'current-version-options'); - -new lambda.Function(stack, 'F', { - code: new lambda.InlineCode(` - exports.handler = async(event) => { - return "My versioned lambda"; - }; - `), - handler: 'index.handler', - runtime: lambda.Runtime.NODEJS_14_X, - currentVersionOptions: { - provisionedConcurrentExecutions: 3, - }, -}); - -new integ.IntegTest(app, 'CurrentVersionOptions', { - testCases: [stack], -}); - -app.synth(); \ No newline at end of file