Class CfnFunction
- All Implemented Interfaces:
IInspectable
,ITaggable
,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 class
A fluent builder forCfnFunction
.static interface
The deployment package for a Lambda function.static interface
The dead-letter queue for failed asynchronous invocations.static interface
A function's environment variable settings.static interface
The size of the function's/tmp
directory in MB.static interface
Details about the connection between a Lambda function and an Amazon EFS file system .static interface
Configuration values that override the container image Dockerfile settings.static interface
The function's Amazon CloudWatch Logs configuration settings.static interface
Sets the runtime management configuration for a function's version.static interface
The function's AWS Lambda SnapStart setting.static interface
The function's SnapStart setting.static interface
The function's AWS X-Ray tracing configuration.static interface
The 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.InitializationMode
Nested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default
Nested classes/interfaces inherited from interface software.amazon.awscdk.IInspectable
IInspectable.Jsii$Default, IInspectable.Jsii$Proxy
Nested classes/interfaces inherited from interface software.amazon.awscdk.ITaggable
ITaggable.Jsii$Default, ITaggable.Jsii$Proxy
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The CloudFormation resource type name for this resource class. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
CfnFunction
(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protected
CfnFunction
(software.amazon.jsii.JsiiObjectRef objRef) CfnFunction
(software.constructs.Construct scope, String id, CfnFunctionProps props) -
Method Summary
Modifier and TypeMethodDescriptionThe 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/tmp
directory in MB.Connection settings for an Amazon EFS file system.The name of the Lambda function, up to 64 characters in length.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.void
inspect
(TreeInspector inspector) Examines the CloudFormation resource and discloses attributes.renderProperties
(Map<String, Object> props) void
setArchitectures
(List<String> value) The instruction set architecture that the function supports.void
setCode
(IResolvable value) The code for the function.void
setCode
(CfnFunction.CodeProperty value) The code for the function.void
setCodeSigningConfigArn
(String value) To enable code signing for this function, specify the ARN of a code-signing configuration.void
setDeadLetterConfig
(IResolvable value) A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.void
A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.void
setDescription
(String value) A description of the function.void
setEnvironment
(IResolvable value) Environment variables that are accessible from function code during execution.void
Environment variables that are accessible from function code during execution.void
setEphemeralStorage
(IResolvable value) The size of the function's/tmp
directory in MB.void
The size of the function's/tmp
directory in MB.void
setFileSystemConfigs
(List<Object> value) Connection settings for an Amazon EFS file system.void
setFileSystemConfigs
(IResolvable value) Connection settings for an Amazon EFS file system.void
setFunctionName
(String value) The name of the Lambda function, up to 64 characters in length.void
setHandler
(String value) The name of the method within your code that Lambda calls to run your function.void
setImageConfig
(IResolvable value) Configuration values that override the container image Dockerfile settings.void
Configuration values that override the container image Dockerfile settings.void
setKmsKeyArn
(String value) The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt the following resources:.void
A list of function layers to add to the function's execution environment.void
setLoggingConfig
(IResolvable value) The function's Amazon CloudWatch Logs configuration settings.void
The function's Amazon CloudWatch Logs configuration settings.void
setMemorySize
(Number value) The amount of memory available to the function at runtime.void
setPackageType
(String value) The type of deployment package.void
setRecursiveLoop
(String value) The status of your function's recursive loop detection configuration.void
The number of simultaneous executions to reserve for the function.void
The Amazon Resource Name (ARN) of the function's execution role.void
setRuntime
(String value) The identifier of the function's runtime .void
Sets the runtime management configuration for a function's version.void
Sets the runtime management configuration for a function's version.void
setSnapStart
(IResolvable value) The function's AWS Lambda SnapStart setting.void
The function's AWS Lambda SnapStart setting.void
setTagsRaw
(List<CfnTag> value) A list of tags to apply to the function.void
setTimeout
(Number value) The amount of time (in seconds) that Lambda allows a function to run before stopping it.void
setTracingConfig
(IResolvable value) void
void
setVpcConfig
(IResolvable value) For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.void
For 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, getMetadata, getUpdatedProperites, getUpdatedProperties, isCfnResource, obtainDependencies, obtainResourceDependencies, removeDependency, replaceDependency, shouldSynthesize, toString, validateProperties
Methods inherited from class software.amazon.awscdk.CfnRefElement
getRef
Methods inherited from class software.amazon.awscdk.CfnElement
getCreationStack, getLogicalId, getStack, isCfnElement, overrideLogicalId
Methods inherited from class software.constructs.Construct
getNode, isConstruct
Methods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods 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
-
inspect
Examines the CloudFormation resource and discloses attributes.- Specified by:
inspect
in 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:
renderProperties
in 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:
getCfnProperties
in classCfnResource
-
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:.
-
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. -
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. -
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/tmp
directory in MB. -
setEphemeralStorage
The size of the function's/tmp
directory in MB. -
setEphemeralStorage
@Stability(Stable) public void setEphemeralStorage(@Nullable CfnFunction.EphemeralStorageProperty value) The size of the function's/tmp
directory in MB. -
getFileSystemConfigs
Connection settings for an Amazon EFS file system. -
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. -
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. -
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. -
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. -
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
-
setTracingConfig
-
setTracingConfig
-
getVpcConfig
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. -
setVpcConfig
For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.
-