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 a container image, the code property must include the URI of a container image in the Amazon ECR registry. 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 a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. For a Python example, see Deploy Python Lambda functions with .zip file archives .
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.
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 SnapStart setting.static interfaceThe function's SnapStart setting.static interfacestatic 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.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 TypeMethodDescriptionThe instruction set architecture that the function supports.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 deployment package for a Lambda function.To enable code signing for this function, specify the ARN of a code-signing configuration.The dead-letter queue for failed asynchronous invocations.A description of the function.A function's environment variable settings.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.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 KMSlong (KMS) customer managed key that's used to encrypt your function's environment variables.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.This property is set to terminate unintended recursions.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 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.The VPC security groups and subnets that are attached to a Lambda function.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 deployment package for a Lambda function.voidsetCode(CfnFunction.CodeProperty value) The deployment package for a Lambda function.voidsetCodeSigningConfigArn(String value) To enable code signing for this function, specify the ARN of a code-signing configuration.voidsetDeadLetterConfig(IResolvable value) The dead-letter queue for failed asynchronous invocations.voidThe dead-letter queue for failed asynchronous invocations.voidsetDescription(String value) A description of the function.voidsetEnvironment(IResolvable value) A function's environment variable settings.voidA function's environment variable settings.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 KMSlong (KMS) customer managed key that's used to encrypt your function's environment variables.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) This property is set to terminate unintended recursions.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 SnapStart setting.voidThe function's 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) The VPC security groups and subnets that are attached to a Lambda function.voidThe VPC security groups and subnets that are attached to a Lambda function.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, 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.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:
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
-
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
-
getTags
Tag Manager which manages the tags for this resource. -
getCode
The deployment package for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template. -
setCode
The deployment package for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template. -
setCode
The deployment package for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template. -
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
The dead-letter queue for failed asynchronous invocations. -
setDeadLetterConfig
The dead-letter queue for failed asynchronous invocations. -
setDeadLetterConfig
@Stability(Stable) public void setDeadLetterConfig(@Nullable CfnFunction.DeadLetterConfigProperty value) The dead-letter queue for failed asynchronous invocations. -
getDescription
A description of the function. -
setDescription
A description of the function. -
getEnvironment
A function's environment variable settings. -
setEnvironment
A function's environment variable settings. -
setEnvironment
A function's environment variable settings. -
getEphemeralStorage
The size of the function's/tmpdirectory in MB. -
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. -
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 KMSlong (KMS) customer managed key that's used to encrypt your function's environment variables. When Lambda SnapStart is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key. -
setKmsKeyArn
The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's environment variables. When Lambda SnapStart is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key. -
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
This property is set to terminate unintended recursions. -
setRecursiveLoop
This property is set to terminate unintended recursions. -
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. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see Runtime use after deprecation. For a list of all currently supported runtimes, see Supported runtimes. -
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. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see Runtime use after deprecation. For a list of all currently supported runtimes, see Supported runtimes. -
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 SnapStart setting. -
setSnapStart
The function's SnapStart setting. -
setSnapStart
The function's 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
The VPC security groups and subnets that are attached to a Lambda function. -
setVpcConfig
The VPC security groups and subnets that are attached to a Lambda function. -
setVpcConfig
The VPC security groups and subnets that are attached to a Lambda function.
-