Class CfnFunction
- All Implemented Interfaces:
IEnvironmentAware,IInspectable,ITaggable,IFunctionRef,software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct,software.constructs.IDependable
AWS::Lambda::Function resource creates a Lambda function.
To create a function, you need a deployment package and an execution role . The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing.
You set the package type to Image if the deployment package is a container image . For these functions, include the URI of the container image in the Amazon ECR registry in the ImageUri property of the Code property . You do not need to specify the handler and runtime properties.
You set the package type to Zip if the deployment package is a .zip file archive . For these functions, specify the Amazon S3 location of your .zip file in the Code property. Alternatively, for Node.js and Python functions, you can define your function inline in the ZipFile property of the Code property . In both cases, you must also specify the handler and runtime properties.
You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with UpdateFunctionCode , Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
When you update a AWS::Lambda::Function resource, CloudFormation calls the UpdateFunctionConfiguration and UpdateFunctionCode Lambda APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CloudFormation update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the $LATEST version.
Note that you configure provisioned concurrency on a AWS::Lambda::Version or a AWS::Lambda::Alias .
For a complete introduction to Lambda functions, see What is Lambda? in the Lambda developer guide.
Example:
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.lambda.*;
CfnFunction cfnFunction = CfnFunction.Builder.create(this, "MyCfnFunction")
.code(CodeProperty.builder()
.imageUri("imageUri")
.s3Bucket("s3Bucket")
.s3Key("s3Key")
.s3ObjectVersion("s3ObjectVersion")
.sourceKmsKeyArn("sourceKmsKeyArn")
.zipFile("zipFile")
.build())
.role("role")
// the properties below are optional
.architectures(List.of("architectures"))
.codeSigningConfigArn("codeSigningConfigArn")
.deadLetterConfig(DeadLetterConfigProperty.builder()
.targetArn("targetArn")
.build())
.description("description")
.environment(EnvironmentProperty.builder()
.variables(Map.of(
"variablesKey", "variables"))
.build())
.ephemeralStorage(EphemeralStorageProperty.builder()
.size(123)
.build())
.fileSystemConfigs(List.of(FileSystemConfigProperty.builder()
.arn("arn")
.localMountPath("localMountPath")
.build()))
.functionName("functionName")
.handler("handler")
.imageConfig(ImageConfigProperty.builder()
.command(List.of("command"))
.entryPoint(List.of("entryPoint"))
.workingDirectory("workingDirectory")
.build())
.kmsKeyArn("kmsKeyArn")
.layers(List.of("layers"))
.loggingConfig(LoggingConfigProperty.builder()
.applicationLogLevel("applicationLogLevel")
.logFormat("logFormat")
.logGroup("logGroup")
.systemLogLevel("systemLogLevel")
.build())
.memorySize(123)
.packageType("packageType")
.recursiveLoop("recursiveLoop")
.reservedConcurrentExecutions(123)
.runtime("runtime")
.runtimeManagementConfig(RuntimeManagementConfigProperty.builder()
.updateRuntimeOn("updateRuntimeOn")
// the properties below are optional
.runtimeVersionArn("runtimeVersionArn")
.build())
.snapStart(SnapStartProperty.builder()
.applyOn("applyOn")
.build())
.tags(List.of(CfnTag.builder()
.key("key")
.value("value")
.build()))
.timeout(123)
.tracingConfig(TracingConfigProperty.builder()
.mode("mode")
.build())
.vpcConfig(VpcConfigProperty.builder()
.ipv6AllowedForDualStack(false)
.securityGroupIds(List.of("securityGroupIds"))
.subnetIds(List.of("subnetIds"))
.build())
.build();
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA fluent builder forCfnFunction.static interfaceThe deployment package for a Lambda function.static interfaceThe dead-letter queue for failed asynchronous invocations.static interfaceA function's environment variable settings.static interfaceThe size of the function's/tmpdirectory in MB.static interfaceDetails about the connection between a Lambda function and an Amazon EFS file system .static interfaceConfiguration values that override the container image Dockerfile settings.static interfaceThe function's Amazon CloudWatch Logs configuration settings.static interfaceSets the runtime management configuration for a function's version.static interfaceThe function's AWS Lambda SnapStart setting.static interfaceThe function's SnapStart setting.static interfaceThe function's AWS X-Ray tracing configuration.static interfaceThe VPC security groups and subnets that are attached to a Lambda function.Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.amazon.awscdk.services.lambda.IFunctionRef
IFunctionRef.Jsii$Default, IFunctionRef.Jsii$ProxyNested classes/interfaces inherited from interface software.amazon.awscdk.IInspectable
IInspectable.Jsii$Default, IInspectable.Jsii$ProxyNested classes/interfaces inherited from interface software.amazon.awscdk.ITaggable
ITaggable.Jsii$Default, ITaggable.Jsii$Proxy -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe CloudFormation resource type name for this resource class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCfnFunction(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protectedCfnFunction(software.amazon.jsii.JsiiObjectRef objRef) CfnFunction(software.constructs.Construct scope, String id, CfnFunctionProps props) -
Method Summary
Modifier and TypeMethodDescriptionstatic IFunctionReffromFunctionArn(software.constructs.Construct scope, String id, String arn) Creates a new IFunctionRef from an ARN.static IFunctionReffromFunctionName(software.constructs.Construct scope, String id, String functionName) Creates a new IFunctionRef from a functionName.The instruction set architecture that the function supports.The Amazon Resource Name (ARN) of the function.The function's SnapStart setting.When set toPublishedVersions, Lambda creates a snapshot of the execution environment when you publish a function version.When you provide a qualified Amazon Resource Name (ARN), this response element indicates whether SnapStart is activated for the specified function version.getCode()The code for the function.To enable code signing for this function, specify the ARN of a code-signing configuration.A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.A description of the function.Environment variables that are accessible from function code during execution.The size of the function's/tmpdirectory in MB.Connection settings for an Amazon EFS file system.The name of the Lambda function, up to 64 characters in length.A reference to a Function resource.The name of the method within your code that Lambda calls to run your function.Configuration values that override the container image Dockerfile settings.The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt the following resources:.A list of function layers to add to the function's execution environment.The function's Amazon CloudWatch Logs configuration settings.The amount of memory available to the function at runtime.The type of deployment package.The status of your function's recursive loop detection configuration.The number of simultaneous executions to reserve for the function.getRole()The Amazon Resource Name (ARN) of the function's execution role.The identifier of the function's runtime .Sets the runtime management configuration for a function's version.The function's AWS Lambda SnapStart setting.getTags()Tag Manager which manages the tags for this resource.A list of tags to apply to the function.The amount of time (in seconds) that Lambda allows a function to run before stopping it.For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.voidinspect(TreeInspector inspector) Examines the CloudFormation resource and discloses attributes.renderProperties(Map<String, Object> props) voidsetArchitectures(List<String> value) The instruction set architecture that the function supports.voidsetCode(IResolvable value) The code for the function.voidsetCode(CfnFunction.CodeProperty value) The code for the function.voidsetCodeSigningConfigArn(String value) To enable code signing for this function, specify the ARN of a code-signing configuration.voidsetDeadLetterConfig(IResolvable value) A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.voidA dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.voidsetDescription(String value) A description of the function.voidsetEnvironment(IResolvable value) Environment variables that are accessible from function code during execution.voidEnvironment variables that are accessible from function code during execution.voidsetEphemeralStorage(IResolvable value) The size of the function's/tmpdirectory in MB.voidThe size of the function's/tmpdirectory in MB.voidsetFileSystemConfigs(List<Object> value) Connection settings for an Amazon EFS file system.voidsetFileSystemConfigs(IResolvable value) Connection settings for an Amazon EFS file system.voidsetFunctionName(String value) The name of the Lambda function, up to 64 characters in length.voidsetHandler(String value) The name of the method within your code that Lambda calls to run your function.voidsetImageConfig(IResolvable value) Configuration values that override the container image Dockerfile settings.voidConfiguration values that override the container image Dockerfile settings.voidsetKmsKeyArn(String value) The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt the following resources:.voidA list of function layers to add to the function's execution environment.voidsetLoggingConfig(IResolvable value) The function's Amazon CloudWatch Logs configuration settings.voidThe function's Amazon CloudWatch Logs configuration settings.voidsetMemorySize(Number value) The amount of memory available to the function at runtime.voidsetPackageType(String value) The type of deployment package.voidsetRecursiveLoop(String value) The status of your function's recursive loop detection configuration.voidThe number of simultaneous executions to reserve for the function.voidThe Amazon Resource Name (ARN) of the function's execution role.voidsetRuntime(String value) The identifier of the function's runtime .voidSets the runtime management configuration for a function's version.voidSets the runtime management configuration for a function's version.voidsetSnapStart(IResolvable value) The function's AWS Lambda SnapStart setting.voidThe function's AWS Lambda SnapStart setting.voidsetTagsRaw(List<CfnTag> value) A list of tags to apply to the function.voidsetTimeout(Number value) The amount of time (in seconds) that Lambda allows a function to run before stopping it.voidsetTracingConfig(IResolvable value) voidvoidsetVpcConfig(IResolvable value) For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.voidFor network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.Methods inherited from class software.amazon.awscdk.CfnResource
addDeletionOverride, addDependency, addDependsOn, addMetadata, addOverride, addPropertyDeletionOverride, addPropertyOverride, applyRemovalPolicy, applyRemovalPolicy, applyRemovalPolicy, getAtt, getAtt, getCfnOptions, getCfnResourceType, getEnv, getMetadata, getUpdatedProperites, getUpdatedProperties, isCfnResource, obtainDependencies, obtainResourceDependencies, removeDependency, replaceDependency, shouldSynthesize, toString, validatePropertiesMethods inherited from class software.amazon.awscdk.CfnRefElement
getRefMethods inherited from class software.amazon.awscdk.CfnElement
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalIdMethods inherited from class software.constructs.Construct
getNode, isConstructMethods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface software.constructs.IConstruct
getNodeMethods inherited from interface software.amazon.awscdk.IEnvironmentAware
getEnvMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Field Details
-
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
-
-
Constructor Details
-
CfnFunction
protected CfnFunction(software.amazon.jsii.JsiiObjectRef objRef) -
CfnFunction
protected CfnFunction(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
CfnFunction
@Stability(Stable) public CfnFunction(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CfnFunctionProps props) - Parameters:
scope- Scope in which this resource is defined. This parameter is required.id- Construct identifier for this resource (unique in its scope). This parameter is required.props- Resource properties. This parameter is required.
-
-
Method Details
-
fromFunctionArn
@Stability(Stable) @NotNull public static IFunctionRef fromFunctionArn(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String arn) Creates a new IFunctionRef from an ARN.- Parameters:
scope- This parameter is required.id- This parameter is required.arn- This parameter is required.
-
fromFunctionName
@Stability(Stable) @NotNull public static IFunctionRef fromFunctionName(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String functionName) Creates a new IFunctionRef from a functionName.- Parameters:
scope- This parameter is required.id- This parameter is required.functionName- This parameter is required.
-
inspect
Examines the CloudFormation resource and discloses attributes.- Specified by:
inspectin interfaceIInspectable- Parameters:
inspector- tree inspector to collect and process attributes. This parameter is required.
-
renderProperties
@Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String, Object> props) - Overrides:
renderPropertiesin classCfnResource- Parameters:
props- This parameter is required.
-
getAttrArn
The Amazon Resource Name (ARN) of the function. -
getAttrSnapStartResponse
The function's SnapStart setting. -
getAttrSnapStartResponseApplyOn
When set toPublishedVersions, Lambda creates a snapshot of the execution environment when you publish a function version. -
getAttrSnapStartResponseOptimizationStatus
When you provide a qualified Amazon Resource Name (ARN), this response element indicates whether SnapStart is activated for the specified function version. -
getCfnProperties
- Overrides:
getCfnPropertiesin classCfnResource
-
getFunctionRef
A reference to a Function resource.- Specified by:
getFunctionRefin interfaceIFunctionRef
-
getTags
Tag Manager which manages the tags for this resource. -
getCode
The code for the function.You can define your function code in multiple ways:.
Returns union: either
IResolvableorCfnFunction.CodeProperty -
setCode
The code for the function.You can define your function code in multiple ways:.
-
setCode
The code for the function.You can define your function code in multiple ways:.
-
getRole
The Amazon Resource Name (ARN) of the function's execution role. -
setRole
The Amazon Resource Name (ARN) of the function's execution role. -
getArchitectures
The instruction set architecture that the function supports. -
setArchitectures
The instruction set architecture that the function supports. -
getCodeSigningConfigArn
To enable code signing for this function, specify the ARN of a code-signing configuration. -
setCodeSigningConfigArn
To enable code signing for this function, specify the ARN of a code-signing configuration. -
getDeadLetterConfig
A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.Returns union: either
IResolvableorCfnFunction.DeadLetterConfigProperty -
setDeadLetterConfig
A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. -
setDeadLetterConfig
@Stability(Stable) public void setDeadLetterConfig(@Nullable CfnFunction.DeadLetterConfigProperty value) A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. -
getDescription
A description of the function. -
setDescription
A description of the function. -
getEnvironment
Environment variables that are accessible from function code during execution.Returns union: either
IResolvableorCfnFunction.EnvironmentProperty -
setEnvironment
Environment variables that are accessible from function code during execution. -
setEnvironment
Environment variables that are accessible from function code during execution. -
getEphemeralStorage
The size of the function's/tmpdirectory in MB.Returns union: either
IResolvableorCfnFunction.EphemeralStorageProperty -
setEphemeralStorage
The size of the function's/tmpdirectory in MB. -
setEphemeralStorage
@Stability(Stable) public void setEphemeralStorage(@Nullable CfnFunction.EphemeralStorageProperty value) The size of the function's/tmpdirectory in MB. -
getFileSystemConfigs
Connection settings for an Amazon EFS file system.Returns union: either
IResolvableor Listinvalid input: '<'eitherIResolvableorCfnFunction.FileSystemConfigProperty> -
setFileSystemConfigs
Connection settings for an Amazon EFS file system. -
setFileSystemConfigs
Connection settings for an Amazon EFS file system. -
getFunctionName
The name of the Lambda function, up to 64 characters in length. -
setFunctionName
The name of the Lambda function, up to 64 characters in length. -
getHandler
The name of the method within your code that Lambda calls to run your function. -
setHandler
The name of the method within your code that Lambda calls to run your function. -
getImageConfig
Configuration values that override the container image Dockerfile settings.Returns union: either
IResolvableorCfnFunction.ImageConfigProperty -
setImageConfig
Configuration values that override the container image Dockerfile settings. -
setImageConfig
Configuration values that override the container image Dockerfile settings. -
getKmsKeyArn
The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt the following resources:. -
setKmsKeyArn
The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt the following resources:. -
getLayers
A list of function layers to add to the function's execution environment. Specify each layer by its ARN, including the version. -
setLayers
A list of function layers to add to the function's execution environment. Specify each layer by its ARN, including the version. -
getLoggingConfig
The function's Amazon CloudWatch Logs configuration settings.Returns union: either
IResolvableorCfnFunction.LoggingConfigProperty -
setLoggingConfig
The function's Amazon CloudWatch Logs configuration settings. -
setLoggingConfig
The function's Amazon CloudWatch Logs configuration settings. -
getMemorySize
The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase. -
setMemorySize
The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase. -
getPackageType
The type of deployment package. -
setPackageType
The type of deployment package. -
getRecursiveLoop
The status of your function's recursive loop detection configuration. -
setRecursiveLoop
The status of your function's recursive loop detection configuration. -
getReservedConcurrentExecutions
The number of simultaneous executions to reserve for the function. -
setReservedConcurrentExecutions
The number of simultaneous executions to reserve for the function. -
getRuntime
The identifier of the function's runtime . Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. -
setRuntime
The identifier of the function's runtime . Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. -
getRuntimeManagementConfig
Sets the runtime management configuration for a function's version.Returns union: either
IResolvableorCfnFunction.RuntimeManagementConfigProperty -
setRuntimeManagementConfig
Sets the runtime management configuration for a function's version. -
setRuntimeManagementConfig
@Stability(Stable) public void setRuntimeManagementConfig(@Nullable CfnFunction.RuntimeManagementConfigProperty value) Sets the runtime management configuration for a function's version. -
getSnapStart
The function's AWS Lambda SnapStart setting.Returns union: either
IResolvableorCfnFunction.SnapStartProperty -
setSnapStart
The function's AWS Lambda SnapStart setting. -
setSnapStart
The function's AWS Lambda SnapStart setting. -
getTagsRaw
A list of tags to apply to the function. -
setTagsRaw
A list of tags to apply to the function. -
getTimeout
The amount of time (in seconds) that Lambda allows a function to run before stopping it. -
setTimeout
The amount of time (in seconds) that Lambda allows a function to run before stopping it. -
getTracingConfig
SetModetoActiveto sample and trace a subset of incoming requests with X-Ray .Returns union: either
IResolvableorCfnFunction.TracingConfigProperty -
setTracingConfig
-
setTracingConfig
-
getVpcConfig
For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.Returns union: either
IResolvableorCfnFunction.VpcConfigProperty -
setVpcConfig
For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. -
setVpcConfig
For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.
-