Class Function
- All Implemented Interfaces:
IEnvironmentAware,IResource,IClientVpnConnectionHandler,IConnectable,IGrantable,IFunction,IFunctionRef,software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct,software.constructs.IDependable
- Direct Known Subclasses:
DockerImageFunction,GoFunction,NodejsFunction,PythonFunction,TriggerFunction
The supplied file is subject to the 4096 bytes limit of being embedded in a CloudFormation template.
The construct includes an associated role with the lambda.
This construct does not yet reproduce all features from the underlying resource library.
Example:
// Create or reference an existing L1 CfnApplicationInferenceProfile
CfnApplicationInferenceProfile cfnProfile = CfnApplicationInferenceProfile.Builder.create(this, "CfnProfile")
.inferenceProfileName("my-cfn-profile")
.modelSource(InferenceProfileModelSourceProperty.builder()
.copyFrom(BedrockFoundationModel.ANTHROPIC_CLAUDE_3_5_SONNET_V1_0.getInvokableArn())
.build())
.description("Profile created via L1 construct")
.build();
// Import the L1 construct as an L2 ApplicationInferenceProfile
IInferenceProfile importedFromCfn = ApplicationInferenceProfile.fromCfnApplicationInferenceProfile(cfnProfile);
// Grant permissions to use the imported profile
Function lambdaFunction = Function.Builder.create(this, "MyFunction")
.runtime(Runtime.PYTHON_3_11)
.handler("index.handler")
.code(Code.fromInline("def handler(event, context): return \"Hello\""))
.build();
importedFromCfn.grantProfileUsage(lambdaFunction);
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.amazon.awscdk.services.ec2.IClientVpnConnectionHandler
IClientVpnConnectionHandler.Jsii$DefaultNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$DefaultNested classes/interfaces inherited from interface software.amazon.awscdk.services.lambda.IFunction
IFunction.Jsii$DefaultNested classes/interfaces inherited from interface software.amazon.awscdk.IResource
IResource.Jsii$Default -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedFunction(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protectedFunction(software.amazon.jsii.JsiiObjectRef objRef) Function(software.constructs.Construct scope, String id, FunctionProps props) -
Method Summary
Modifier and TypeMethodDescriptionDefines an alias for this function.addAlias(String aliasName, AliasOptions options) Defines an alias for this function.addEnvironment(String key, String value) Adds an environment variable to this Lambda function.addEnvironment(String key, String value, EnvironmentOptions options) Adds an environment variable to this Lambda function.voidaddLayers(ILayerVersion... layers) Adds one or more Lambda Layers to this Lambda function.static voidclassifyVersionProperty(String propertyName, Boolean locked) Record whether specific properties in theAWS::Lambda::Functionresource should also be associated to the Version resource.static IFunctionfromFunctionArn(software.constructs.Construct scope, String id, String functionArn) Import a lambda function into the CDK using its ARN.static IFunctionfromFunctionAttributes(software.constructs.Construct scope, String id, FunctionAttributes attrs) Creates a Lambda function object which represents a function not defined within this stack.static IFunctionfromFunctionName(software.constructs.Construct scope, String id, String functionName) Import a lambda function into the CDK using its name.The architecture of this Lambda Function (this is an optional attribute and defaults to X86_64).protected BooleanWhether the addPermission() call adds any permissions.Returns alambda.Versionwhich represents the current version of this Lambda function.The DLQ (as queue) associated with this Lambda Function (this is an optional attribute).The DLQ (as topic) associated with this Lambda Function (this is an optional attribute).ARN of this function.Name of this function.The principal this Lambda Function is running as.The LogGroup where the Lambda function's logs are made available.software.constructs.NodeThe construct node where permissions are attached.The ARN(s) to put into the resource field of the generated IAM policy for grantInvoke().getRole()Execution role associated with this function.The runtime configured for this lambda.The timeout configured for this lambda.voidMix additional information into the hash of the Version object.static MetricReturn the given named metric for this Lambda.static MetricmetricAll(String metricName, MetricOptions props) Return the given named metric for this Lambda.static MetricMetric for the number of concurrent executions across all Lambdas.static MetricMetric for the number of concurrent executions across all Lambdas.static MetricMetric for the Duration executing all Lambdas.static MetricmetricAllDuration(MetricOptions props) Metric for the Duration executing all Lambdas.static MetricMetric for the number of Errors executing all Lambdas.static MetricmetricAllErrors(MetricOptions props) Metric for the number of Errors executing all Lambdas.static MetricMetric for the number of invocations of all Lambdas.static MetricMetric for the number of invocations of all Lambdas.static MetricMetric for the number of throttled invocations of all Lambdas.static MetricmetricAllThrottles(MetricOptions props) Metric for the number of throttled invocations of all Lambdas.static MetricMetric for the number of unreserved concurrent executions across all Lambdas.static MetricMetric for the number of unreserved concurrent executions across all Lambdas.Methods inherited from class software.amazon.awscdk.services.lambda.FunctionBase
addEventSource, addEventSourceMapping, addFunctionUrl, addFunctionUrl, addPermission, addToRolePolicy, configureAsyncInvoke, considerWarningOnInvokeFunctionPermissions, getConnections, getFunctionRef, getIsBoundToVpc, getLatestVersion, grantInvoke, grantInvokeCompositePrincipal, grantInvokeLatestVersion, grantInvokeUrl, grantInvokeVersion, metric, metric, metricDuration, metricDuration, metricErrors, metricErrors, metricInvocations, metricInvocations, metricThrottles, metricThrottles, warnInvokeFunctionPermissionsMethods inherited from class software.amazon.awscdk.Resource
applyRemovalPolicy, generatePhysicalName, getEnv, getPhysicalName, getResourceArnAttribute, getResourceNameAttribute, getStack, isOwnedResource, isResourceMethods inherited from class software.constructs.Construct
getNode, isConstruct, toStringMethods 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.awscdk.IResource
applyRemovalPolicy, getStackMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Field Details
-
PROPERTY_INJECTION_ID
Uniquely identifies this class.
-
-
Constructor Details
-
Function
protected Function(software.amazon.jsii.JsiiObjectRef objRef) -
Function
protected Function(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
Function
@Stability(Stable) public Function(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull FunctionProps props) - Parameters:
scope- This parameter is required.id- This parameter is required.props- This parameter is required.
-
-
Method Details
-
classifyVersionProperty
@Stability(Stable) public static void classifyVersionProperty(@NotNull String propertyName, @NotNull Boolean locked) Record whether specific properties in theAWS::Lambda::Functionresource should also be associated to the Version resource.See 'currentVersion' section in the module README for more details.
- Parameters:
propertyName- The property to classify. This parameter is required.locked- whether the property should be associated to the version or not. This parameter is required.
-
fromFunctionArn
@Stability(Stable) @NotNull public static IFunction fromFunctionArn(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String functionArn) Import 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.- Parameters:
scope- This parameter is required.id- This parameter is required.functionArn- This parameter is required.
-
fromFunctionAttributes
@Stability(Stable) @NotNull public static IFunction fromFunctionAttributes(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull FunctionAttributes attrs) Creates 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.- Parameters:
scope- The parent construct. This parameter is required.id- The name of the lambda construct. This parameter is required.attrs- the attributes of the function to import. This parameter is required.
-
fromFunctionName
@Stability(Stable) @NotNull public static IFunction fromFunctionName(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String functionName) Import a lambda function into the CDK using its name.- Parameters:
scope- This parameter is required.id- This parameter is required.functionName- This parameter is required.
-
metricAll
@Stability(Stable) @NotNull public static Metric metricAll(@NotNull String metricName, @Nullable MetricOptions props) Return the given named metric for this Lambda.- Parameters:
metricName- This parameter is required.props-
-
metricAll
Return the given named metric for this Lambda.- Parameters:
metricName- This parameter is required.
-
metricAllConcurrentExecutions
@Stability(Stable) @NotNull public static Metric metricAllConcurrentExecutions(@Nullable MetricOptions props) Metric for the number of concurrent executions across all Lambdas.Default: max over 5 minutes
- Parameters:
props-
-
metricAllConcurrentExecutions
Metric for the number of concurrent executions across all Lambdas.Default: max over 5 minutes
-
metricAllDuration
Metric for the Duration executing all Lambdas.Default: average over 5 minutes
- Parameters:
props-
-
metricAllDuration
Metric for the Duration executing all Lambdas.Default: average over 5 minutes
-
metricAllErrors
Metric for the number of Errors executing all Lambdas.Default: sum over 5 minutes
- Parameters:
props-
-
metricAllErrors
Metric for the number of Errors executing all Lambdas.Default: sum over 5 minutes
-
metricAllInvocations
@Stability(Stable) @NotNull public static Metric metricAllInvocations(@Nullable MetricOptions props) Metric for the number of invocations of all Lambdas.Default: sum over 5 minutes
- Parameters:
props-
-
metricAllInvocations
Metric for the number of invocations of all Lambdas.Default: sum over 5 minutes
-
metricAllThrottles
Metric for the number of throttled invocations of all Lambdas.Default: sum over 5 minutes
- Parameters:
props-
-
metricAllThrottles
Metric for the number of throttled invocations of all Lambdas.Default: sum over 5 minutes
-
metricAllUnreservedConcurrentExecutions
@Stability(Stable) @NotNull public static Metric metricAllUnreservedConcurrentExecutions(@Nullable MetricOptions props) Metric for the number of unreserved concurrent executions across all Lambdas.Default: max over 5 minutes
- Parameters:
props-
-
metricAllUnreservedConcurrentExecutions
Metric for the number of unreserved concurrent executions across all Lambdas.Default: max over 5 minutes
-
addAlias
@Stability(Stable) @NotNull public Alias addAlias(@NotNull String aliasName, @Nullable AliasOptions options) Defines 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.
Function fn; fn.addAlias("Live"); // Is equivalent to // Is equivalent to Alias.Builder.create(this, "AliasLive") .aliasName("Live") .version(fn.getCurrentVersion()) .build();- Parameters:
aliasName- The name of the alias. This parameter is required.options- Alias options.
-
addAlias
Defines 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.
Function fn; fn.addAlias("Live"); // Is equivalent to // Is equivalent to Alias.Builder.create(this, "AliasLive") .aliasName("Live") .version(fn.getCurrentVersion()) .build();- Parameters:
aliasName- The name of the alias. This parameter is required.
-
addEnvironment
@Stability(Stable) @NotNull public Function addEnvironment(@NotNull String key, @NotNull String value, @Nullable EnvironmentOptions options) Adds an environment variable to this Lambda function.If this is a ref to a Lambda function, this operation results in a no-op.
- Parameters:
key- The environment variable key. This parameter is required.value- The environment variable's value. This parameter is required.options- Environment variable options.
-
addEnvironment
@Stability(Stable) @NotNull public Function addEnvironment(@NotNull String key, @NotNull String value) Adds an environment variable to this Lambda function.If this is a ref to a Lambda function, this operation results in a no-op.
- Parameters:
key- The environment variable key. This parameter is required.value- The environment variable's value. This parameter is required.
-
addLayers
Adds one or more Lambda Layers to this Lambda function.- Parameters:
layers- the layers to be added. This parameter is required.
-
invalidateVersionBasedOn
Mix 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.
- Parameters:
x- This parameter is required.
-
getArchitecture
The architecture of this Lambda Function (this is an optional attribute and defaults to X86_64).- Specified by:
getArchitecturein interfaceIFunction- Specified by:
getArchitecturein classFunctionBase
-
getCanCreatePermissions
Whether the addPermission() call adds any permissions.True for new Lambdas, false for version $LATEST and imported Lambdas from different accounts.
- Specified by:
getCanCreatePermissionsin classFunctionBase
-
getCurrentVersion
Returns alambda.Versionwhich 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
currentVersionOptionsprop when initializing thelambda.Function. -
getFunctionArn
ARN of this function.- Specified by:
getFunctionArnin interfaceIClientVpnConnectionHandler- Specified by:
getFunctionArnin interfaceIFunction- Specified by:
getFunctionArnin classFunctionBase
-
getFunctionName
Name of this function.- Specified by:
getFunctionNamein interfaceIClientVpnConnectionHandler- Specified by:
getFunctionNamein interfaceIFunction- Specified by:
getFunctionNamein classFunctionBase
-
getGrantPrincipal
The principal this Lambda Function is running as.- Specified by:
getGrantPrincipalin interfaceIGrantable- Specified by:
getGrantPrincipalin classFunctionBase
-
getLogGroup
The LogGroup where the Lambda function's logs are made available.If either
logRetentionis 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
logRetentionis not set, the custom resource will reset the log retention to never expire even if it was configured with a different value. -
getPermissionsNode
@Stability(Stable) @NotNull public software.constructs.Node getPermissionsNode()The construct node where permissions are attached.- Specified by:
getPermissionsNodein interfaceIFunction- Specified by:
getPermissionsNodein classFunctionBase
-
getResourceArnsForGrantInvoke
The ARN(s) to put into the resource field of the generated IAM policy for grantInvoke().- Specified by:
getResourceArnsForGrantInvokein interfaceIFunction- Specified by:
getResourceArnsForGrantInvokein classFunctionBase
-
getRuntime
The runtime configured for this lambda. -
getDeadLetterQueue
The DLQ (as queue) associated with this Lambda Function (this is an optional attribute). -
getDeadLetterTopic
The DLQ (as topic) associated with this Lambda Function (this is an optional attribute). -
getRole
Execution role associated with this function.- Specified by:
getRolein interfaceIFunction- Specified by:
getRolein classFunctionBase
-
getTimeout
The timeout configured for this lambda.
-