ExperimentalExperimentalProtected Optional Internal_Actual connections object for this Lambda
May be unset, in which case this Lambda is not configured use in a VPC.
Protected Internal_Mapping of function URL invocation principals to grants. Used to de-dupe grantInvokeUrl() calls.
Protected Internal_Mapping of invocation principals to grants. Used to de-dupe grantInvoke() calls.
Readonly Internal_Optional Internal_Protected Optional Readonly Internal_Whether the user decides to skip adding permissions. The only use case is for cross-account, imported lambdas where the user commits to modifying the permisssions on the imported lambda outside CDK.
Protected Internal_Flag to delay adding a warning message until current version is invoked.
Optional Readonly ExperimentalaliasReadonly ExperimentalappReadonly ExperimentalarchitectureThe architecture of this Lambda Function (this is an optional attribute and defaults to X86_64).
Readonly ExperimentalbucketProtected Readonly ExperimentalcanWhether the addPermission() call adds any permissions
True for new Lambdas, false for version $LATEST and imported Lambdas from different accounts.
Optional Readonly ExperimentaldeadThe DLQ (as queue) associated with this Lambda Function (this is an optional attribute).
Optional Readonly ExperimentaldeadThe DLQ (as topic) associated with this Lambda Function (this is an optional attribute).
Readonly ExperimentalenvThe environment this resource belongs to. For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
Readonly ExperimentalfileReadonly ExperimentalfunctionARN of this function
Readonly ExperimentalfunctionName of this function
Readonly ExperimentalgrantThe principal this Lambda Function is running as
Readonly ExperimentalkinesisReadonly ExperimentalnodeThe tree node.
Readonly ExperimentalpermissionsThe construct node where permissions are attached.
Protected Readonly ExperimentalphysicalReturns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
This value will resolve to one of the following:
"my-awesome-bucket")undefined, when a name should be generated by CloudFormationOptional Readonly ExperimentalroleExecution role associated with this function
Readonly ExperimentalruntimeThe runtime configured for this lambda.
Readonly ExperimentalstackThe stack in which this resource is defined.
Optional Readonly ExperimentaltimeoutThe timeout configured for this lambda.
Readonly ExperimentalwithoutReadonly ExperimentalwithoutStatic Internal_Static Readonly ExperimentalPROPERTY_Uniquely identifies this class.
ExperimentalAccess the Connections object
Will fail if not a VPC-enabled Lambda Function
ExperimentalReturns a lambda.Version which represents the current version of this
Lambda function. A new version will be created every time the function's
configuration changes.
You can specify options for this version using the currentVersionOptions
prop when initializing the lambda.Function.
ExperimentalA reference to a Function resource.
ExperimentalWhether or not this Lambda function was bound to a VPC
If this is is false, trying to access the connections object will fail.
ExperimentalThe $LATEST version of this function.
Note that this is reference to a non-specific AWS Lambda version, which means the function this version refers to can return different results in different invocations.
To obtain a reference to an explicit version which references the current
function configuration, use lambdaFunction.currentVersion instead.
ExperimentalThe LogGroup where the Lambda function's logs are made available.
If either logRetention is set or this property is called, a CloudFormation custom resource is added to the stack that
pre-creates the log group as part of the stack deployment, if it already doesn't exist, and sets the correct log retention
period (never expire, by default).
Further, if the log group already exists and the logRetention is not set, the custom resource will reset the log retention
to never expire even if it was configured with a different value.
ExperimentalThe ARN(s) to put into the resource field of the generated IAM policy for grantInvoke()
InternalInternalCalled when this resource is referenced across environments (account/region) to order to request that a physical name will be generated for this resource during synthesis, so the resource can be referenced through its absolute name/arn.
Protected_InternalReturns the construct tree node that corresponds to the lambda function. For use internally for constructs, when the tree is set up in non-standard ways. Ex: SingletonFunction.
Protected_InternalGiven the function arn, check if the account id matches this account
Function ARNs look like this:
arn:aws:lambda:region:account-id:function:function-name
..which means that in order to extract the account-id component from the ARN, we can
split the ARN using ":" and select the component in index 4.
true if account id of function matches the account specified on the stack, false otherwise.
ExperimentalDefines an alias for this function.
The alias will automatically be updated to point to the latest version of the function as it is being updated during a deployment.
declare const fn: lambda.Function;
fn.addAlias('Live');
// Is equivalent to
new lambda.Alias(this, 'AliasLive', {
aliasName: 'Live',
version: fn.currentVersion,
});
The name of the alias
Optionaloptions: AliasOptionsAlias options
ExperimentalAdds an environment variable to this Lambda function. If this is a ref to a Lambda function, this operation results in a no-op.
The environment variable key.
The environment variable's value.
Optionaloptions: EnvironmentOptionsEnvironment variable options.
ExperimentalAdds an event source to this function.
Event sources are implemented in the aws-cdk-lib/aws-lambda-event-sources module.
The following example adds an SQS Queue as an event source:
import { SqsEventSource } from 'aws-cdk-lib/aws-lambda-event-sources';
myFunction.addEventSource(new SqsEventSource(myQueue));
ExperimentalAdds an event source that maps to this AWS Lambda function.
construct ID
mapping options
ExperimentalAdds a url to this lambda function.
Optionaloptions: FunctionUrlOptionsExperimentalAdds a statement to the IAM role assumed by the instance.
ExperimentalApply the given removal policy to this resource
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN).
ExperimentalConfigures options for asynchronous invocation.
ExperimentalA warning will be added to functions under the following conditions:
lambda:InvokeFunction are added to the unqualified function.This applies only to permissions on Lambda functions, not versions or aliases. This function is overridden as a noOp for QualifiedFunctionBase.
ProtectedgenerateExperimentalProtectedgetExperimentalReturns an environment-sensitive token that should be used for the
resource's "ARN" attribute (e.g. bucket.bucketArn).
Normally, this token will resolve to arnAttr, but if the resource is
referenced across environments, arnComponents will be used to synthesize
a concrete ARN with the resource's physical name. Make sure to reference
this.physicalName in arnComponents.
The CFN attribute which resolves to the ARN of the resource.
Commonly it will be called "Arn" (e.g. resource.attrArn), but sometimes
it's the CFN resource's ref.
The format of the ARN of this resource. You must
reference this.physicalName somewhere within the ARN in order for
cross-environment references to work.
ProtectedgetExperimentalReturns an environment-sensitive token that should be used for the
resource's "name" attribute (e.g. bucket.bucketName).
Normally, this token will resolve to nameAttr, but if the resource is
referenced across environments, it will be resolved to this.physicalName,
which will be a concrete name.
The CFN attribute which resolves to the resource's name.
Commonly this is the resource's ref.
ExperimentalGrant the given identity permissions to invoke this Lambda
ExperimentalGrant multiple principals the ability to invoke this Lambda via CompositePrincipal
ExperimentalGrant the given identity permissions to invoke the $LATEST version or unqualified version of this Lambda
ExperimentalGrant the given identity permissions to invoke this Lambda Function URL
ExperimentalGrant the given identity permissions to invoke the given version of this Lambda
ExperimentalMix additional information into the hash of the Version object
The Lambda Function construct does its best to automatically create a new Version when anything about the Function changes (its code, its layers, any of the other properties).
However, you can sometimes source information from places that the CDK cannot look into, like the deploy-time values of SSM parameters. In those cases, the CDK would not force the creation of a new Version object when it actually should.
This method can be used to invalidate the current Version object. Pass in any string into this method, and make sure the string changes when you know a new Version needs to be created.
This method may be called more than once.
ExperimentalReturn the given named metric for this Function
Optionalprops: MetricOptionsExperimentalHow long execution of this Lambda takes
Average over 5 minutes
Optionalprops: MetricOptionsExperimentalHow many invocations of this Lambda fail
Sum over 5 minutes
Optionalprops: MetricOptionsExperimentalHow often this Lambda is invoked
Sum over 5 minutes
Optionalprops: MetricOptionsExperimentalHow often this Lambda is throttled
Sum over 5 minutes
Optionalprops: MetricOptionsExperimentalReturns a string representation of this construct.
ProtectedwarnExperimentalStaticclassifyExperimentalRecord whether specific properties in the AWS::Lambda::Function resource should
also be associated to the Version resource.
See 'currentVersion' section in the module README for more details.
The property to classify
whether the property should be associated to the version or not.
StaticfromExperimentalImport a lambda function into the CDK using its ARN.
For Function.addPermissions() to work on this imported lambda, make sure that is
in the same account and region as the stack you are importing it into.
StaticfromExperimentalCreates a Lambda function object which represents a function not defined within this stack.
For Function.addPermissions() to work on this imported lambda, set the sameEnvironment property to true
if this imported lambda is in the same account and region as the stack you are importing it into.
The parent construct
The name of the lambda construct
the attributes of the function to import
StaticfromExperimentalImport a lambda function into the CDK using its name
StaticisExperimentalChecks if x is a construct.
Use this method instead of instanceof to properly detect Construct
instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the constructs library on
disk are seen as independent, completely different libraries. As a
consequence, the class Construct in each copy of the constructs library
is seen as a different class, and an instance of one class will not test as
instanceof the other class. npm install will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the constructs
library can be accidentally installed, and instanceof will behave
unpredictably. It is safest to avoid using instanceof, and using
this type-testing method instead.
Any object
true if x is an object created from a class which extends Construct.
StaticisExperimentalReturns true if the construct was created by CDK, and false otherwise
StaticisExperimentalCheck whether the given construct is a Resource
StaticmetricExperimentalReturn the given named metric for this Lambda
Optionalprops: MetricOptionsStaticmetricStaticmetricStaticmetricStaticmetricStaticmetricStaticmetric
Pattern which creates all of the resources needed to invoke a lambda function whenever a record is put onto a Kinesis stream.
This pattern will create a new Kinesis stream by default. If you are migrating a stack from CloudFormation, you will need to opt-out of this behaviour. For information on overriding the default behaviour, see [[
GuKinesisLambdaProps]].The Kinesis stream is stateful, and is accessible via
kinesisStream.See
https://github.com/guardian/cdk/blob/main/docs/stateful-resources.md
This pattern is in early development. The API is likely to change in future releases.