@Generated(value="jsii-pacmak/1.74.0 (build 6d08790)", date="2023-03-22T19:35:44.227Z") public class SingletonFunction extends FunctionBase
This construct is a way to guarantee that the lambda function will be guaranteed to be part of the stack,
once and only once, irrespective of how many times the construct is declared to be part of the stack.
This is guaranteed as long as the uuid
property and the optional lambdaPurpose
property stay the same
whenever they're declared into the stack.
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.codeguruprofiler.*; import software.amazon.awscdk.services.ec2.*; import software.amazon.awscdk.services.iam.*; import software.amazon.awscdk.services.kms.*; import software.amazon.awscdk.services.lambda.*; import software.amazon.awscdk.services.logs.*; import software.amazon.awscdk.services.sns.*; import software.amazon.awscdk.services.sqs.*; import software.amazon.awscdk.core.*; Architecture architecture; Code code; CodeSigningConfig codeSigningConfig; IDestination destination; IEventSource eventSource; FileSystem fileSystem; Key key; LambdaInsightsVersion lambdaInsightsVersion; LayerVersion layerVersion; PolicyStatement policyStatement; ProfilingGroup profilingGroup; Queue queue; Role role; Runtime runtime; SecurityGroup securityGroup; Size size; Subnet subnet; SubnetFilter subnetFilter; Topic topic; Vpc vpc; SingletonFunction singletonFunction = SingletonFunction.Builder.create(this, "MySingletonFunction") .code(code) .handler("handler") .runtime(runtime) .uuid("uuid") // the properties below are optional .allowAllOutbound(false) .allowPublicSubnet(false) .architecture(architecture) .architectures(List.of(architecture)) .codeSigningConfig(codeSigningConfig) .currentVersionOptions(VersionOptions.builder() .codeSha256("codeSha256") .description("description") .maxEventAge(Duration.minutes(30)) .onFailure(destination) .onSuccess(destination) .provisionedConcurrentExecutions(123) .removalPolicy(RemovalPolicy.DESTROY) .retryAttempts(123) .build()) .deadLetterQueue(queue) .deadLetterQueueEnabled(false) .deadLetterTopic(topic) .description("description") .environment(Map.of( "environmentKey", "environment")) .environmentEncryption(key) .ephemeralStorageSize(size) .events(List.of(eventSource)) .filesystem(fileSystem) .functionName("functionName") .initialPolicy(List.of(policyStatement)) .insightsVersion(lambdaInsightsVersion) .lambdaPurpose("lambdaPurpose") .layers(List.of(layerVersion)) .logRetention(RetentionDays.ONE_DAY) .logRetentionRetryOptions(LogRetentionRetryOptions.builder() .base(Duration.minutes(30)) .maxRetries(123) .build()) .logRetentionRole(role) .maxEventAge(Duration.minutes(30)) .memorySize(123) .onFailure(destination) .onSuccess(destination) .profiling(false) .profilingGroup(profilingGroup) .reservedConcurrentExecutions(123) .retryAttempts(123) .role(role) .securityGroup(securityGroup) .securityGroups(List.of(securityGroup)) .timeout(Duration.minutes(30)) .tracing(Tracing.ACTIVE) .vpc(vpc) .vpcSubnets(SubnetSelection.builder() .availabilityZones(List.of("availabilityZones")) .onePerAz(false) .subnetFilters(List.of(subnetFilter)) .subnetGroupName("subnetGroupName") .subnetName("subnetName") .subnets(List.of(subnet)) .subnetType(SubnetType.ISOLATED) .build()) .build();
Modifier and Type | Class and Description |
---|---|
static class |
SingletonFunction.Builder
A fluent builder for
SingletonFunction . |
IFunction.Jsii$Default
IClientVpnConnectionHandler.Jsii$Default
Modifier | Constructor and Description |
---|---|
protected |
SingletonFunction(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
SingletonFunction(software.amazon.jsii.JsiiObjectRef objRef) |
|
SingletonFunction(software.constructs.Construct scope,
java.lang.String id,
SingletonFunctionProps props) |
Modifier and Type | Method and Description |
---|---|
void |
addDependency(IDependable... up)
Using node.addDependency() does not work on this method as the underlying lambda function is modeled as a singleton across the stack.
|
Function |
addEnvironment(java.lang.String key,
java.lang.String value)
Adds an environment variable to this Lambda function.
|
Function |
addEnvironment(java.lang.String key,
java.lang.String value,
EnvironmentOptions options)
Adds an environment variable to this Lambda function.
|
void |
addLayers(ILayerVersion... layers)
Adds one or more Lambda Layers to this Lambda function.
|
void |
addPermission(java.lang.String name,
Permission permission)
Adds a permission to the Lambda resource policy.
|
void |
dependOn(IConstruct down)
The SingletonFunction construct cannot be added as a dependency of another construct using node.addDependency().
|
Architecture |
getArchitecture()
The architecture of this Lambda Function.
|
protected java.lang.Boolean |
getCanCreatePermissions()
Whether the addPermission() call adds any permissions.
|
Connections |
getConnections()
Access the Connections object.
|
Version |
getCurrentVersion()
Returns a `lambda.Version` which represents the current version of this singleton Lambda function.
|
java.lang.String |
getFunctionArn()
The ARN fo the function.
|
java.lang.String |
getFunctionName()
The name of the function.
|
IPrincipal |
getGrantPrincipal()
The principal this Lambda Function is running as.
|
java.lang.Boolean |
getIsBoundToVpc()
Whether or not this Lambda function was bound to a VPC.
|
ILogGroup |
getLogGroup()
The LogGroup where the Lambda function's logs are made available.
|
ConstructNode |
getPermissionsNode()
The construct node where permissions are attached.
|
java.util.List<java.lang.String> |
getResourceArnsForGrantInvoke()
The ARN(s) to put into the resource field of the generated IAM policy for grantInvoke().
|
IRole |
getRole()
The IAM role associated with this function.
|
Runtime |
getRuntime()
The runtime environment for the Lambda function.
|
addEventSource, addEventSourceMapping, addFunctionUrl, addFunctionUrl, addToRolePolicy, configureAsyncInvoke, considerWarningOnInvokeFunctionPermissions, getLatestVersion, grantInvoke, grantInvokeUrl, metric, metric, metricDuration, metricDuration, metricErrors, metricErrors, metricInvocations, metricInvocations, metricThrottles, metricThrottles, warnInvokeFunctionPermissions
applyRemovalPolicy, generatePhysicalName, getEnv, getPhysicalName, getResourceArnAttribute, getResourceNameAttribute, getStack, isResource
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
applyRemovalPolicy, getEnv, getStack
getNode
protected SingletonFunction(software.amazon.jsii.JsiiObjectRef objRef)
protected SingletonFunction(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
public SingletonFunction(software.constructs.Construct scope, java.lang.String id, SingletonFunctionProps props)
scope
- This parameter is required.id
- This parameter is required.props
- This parameter is required.public void addDependency(IDependable... up)
up
- This parameter is required.public Function addEnvironment(java.lang.String key, java.lang.String value, EnvironmentOptions options)
If this is a ref to a Lambda function, this operation results in a no-op.
key
- The environment variable key. This parameter is required.value
- The environment variable's value. This parameter is required.options
- Environment variable options.public Function addEnvironment(java.lang.String key, java.lang.String value)
If this is a ref to a Lambda function, this operation results in a no-op.
key
- The environment variable key. This parameter is required.value
- The environment variable's value. This parameter is required.public void addLayers(ILayerVersion... layers)
layers
- the layers to be added. This parameter is required.public void addPermission(java.lang.String name, Permission permission)
addPermission
in interface IFunction
addPermission
in class FunctionBase
name
- This parameter is required.permission
- This parameter is required.public void dependOn(IConstruct down)
down
- This parameter is required.public Architecture getArchitecture()
getArchitecture
in interface IFunction
getArchitecture
in class FunctionBase
protected java.lang.Boolean getCanCreatePermissions()
True for new Lambdas, false for version $LATEST and imported Lambdas from different accounts.
getCanCreatePermissions
in class FunctionBase
public Connections getConnections()
Will fail if not a VPC-enabled Lambda Function
getConnections
in interface IConnectable
getConnections
in class FunctionBase
public Version getCurrentVersion()
You can specify options for this version using the currentVersionOptions
prop when initializing the lambda.SingletonFunction
.
public java.lang.String getFunctionArn()
getFunctionArn
in interface IClientVpnConnectionHandler
getFunctionArn
in interface IFunction
getFunctionArn
in class FunctionBase
public java.lang.String getFunctionName()
getFunctionName
in interface IClientVpnConnectionHandler
getFunctionName
in interface IFunction
getFunctionName
in class FunctionBase
public IPrincipal getGrantPrincipal()
getGrantPrincipal
in interface IGrantable
getGrantPrincipal
in class FunctionBase
public java.lang.Boolean getIsBoundToVpc()
If this is is false
, trying to access the connections
object will fail.
getIsBoundToVpc
in interface IFunction
getIsBoundToVpc
in class FunctionBase
public ILogGroup getLogGroup()
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.
public ConstructNode getPermissionsNode()
getPermissionsNode
in interface IFunction
getPermissionsNode
in class FunctionBase
public java.util.List<java.lang.String> getResourceArnsForGrantInvoke()
getResourceArnsForGrantInvoke
in interface IFunction
getResourceArnsForGrantInvoke
in class FunctionBase
public Runtime getRuntime()
public IRole getRole()
Undefined if the function was imported without a role.
getRole
in interface IFunction
getRole
in class FunctionBase