aws-cdk-lib 2.152.0__py3-none-any.whl → 2.153.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

@@ -1042,8 +1042,7 @@ fn = lambda_.Function(self, "MyFunction",
1042
1042
  )
1043
1043
  ```
1044
1044
 
1045
- See [the AWS documentation](https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html)
1046
- managing concurrency.
1045
+ https://docs.aws.amazon.com/lambda/latest/dg/invocation-recursion.html
1047
1046
 
1048
1047
  ## Lambda with SnapStart
1049
1048
 
@@ -1178,6 +1177,26 @@ lambda_.Function(self, "Lambda",
1178
1177
  Providing a user-controlled log group was rolled out to commercial regions on 2023-11-16.
1179
1178
  If you are deploying to another type of region, please check regional availability first.
1180
1179
 
1180
+ ## Lambda with Recursive Loop protection
1181
+
1182
+ Recursive loop protection is to stop unintended loops. The customers are opted in by default for Lambda to detect and terminate unintended loops between Lambda and other AWS Services.
1183
+ The property can be assigned two values here, "Allow" and "Terminate".
1184
+
1185
+ The default value is set to "Terminate", which lets the Lambda to detect and terminate the recursive loops.
1186
+
1187
+ When the value is set to "Allow", the customers opt out of recursive loop detection and Lambda does not terminate recursive loops if any.
1188
+
1189
+ See [the AWS documentation](https://docs.aws.amazon.com/lambda/latest/dg/invocation-recursion.html) to learn more about AWS Lambda Recusrive Loop Detection
1190
+
1191
+ ```python
1192
+ fn = lambda_.Function(self, "MyFunction",
1193
+ code=lambda_.Code.from_asset(path.join(__dirname, "handler.zip")),
1194
+ runtime=lambda_.Runtime.JAVA_11,
1195
+ handler="example.Handler::handleRequest",
1196
+ recursive_loop=lambda_.RecursiveLoop.TERMINATE
1197
+ )
1198
+ ```
1199
+
1181
1200
  ### Legacy Log Retention
1182
1201
 
1183
1202
  As an alternative to providing a custom, user controlled log group, the legacy `logRetention` property can be used to set a different expiration period.
@@ -6169,6 +6188,7 @@ class CfnFunction(
6169
6188
  ),
6170
6189
  memory_size=123,
6171
6190
  package_type="packageType",
6191
+ recursive_loop="recursiveLoop",
6172
6192
  reserved_concurrent_executions=123,
6173
6193
  runtime="runtime",
6174
6194
  runtime_management_config=lambda.CfnFunction.RuntimeManagementConfigProperty(
@@ -6218,6 +6238,7 @@ class CfnFunction(
6218
6238
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFunction.LoggingConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6219
6239
  memory_size: typing.Optional[jsii.Number] = None,
6220
6240
  package_type: typing.Optional[builtins.str] = None,
6241
+ recursive_loop: typing.Optional[builtins.str] = None,
6221
6242
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
6222
6243
  runtime: typing.Optional[builtins.str] = None,
6223
6244
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFunction.RuntimeManagementConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -6230,31 +6251,32 @@ class CfnFunction(
6230
6251
  '''
6231
6252
  :param scope: Scope in which this resource is defined.
6232
6253
  :param id: Construct identifier for this resource (unique in its scope).
6233
- :param code: The code for the function.
6254
+ :param code: The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ 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.
6234
6255
  :param role: The Amazon Resource Name (ARN) of the function's execution role.
6235
- :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64`` .
6256
+ :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
6236
6257
  :param code_signing_config_arn: To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
6237
- :param dead_letter_config: A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see `Dead-letter queues <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq>`_ .
6258
+ :param dead_letter_config: The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.
6238
6259
  :param description: A description of the function.
6239
- :param environment: Environment variables that are accessible from function code during execution.
6260
+ :param environment: A function's environment variable settings. You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
6240
6261
  :param ephemeral_storage: The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
6241
- :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ .
6242
- :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
6243
- :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_ .
6244
- :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
6245
- :param kms_key_arn: The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.
6262
+ :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_.
6263
+ :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
6264
+ :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_.
6265
+ :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
6266
+ :param kms_key_arn: The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.
6246
6267
  :param layers: A list of `function layers <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html>`_ to add to the function's execution environment. Specify each layer by its ARN, including the version.
6247
6268
  :param logging_config: The function's Amazon CloudWatch Logs configuration settings.
6248
6269
  :param memory_size: The amount of `memory available to the function <https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console>`_ 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.
6249
6270
  :param package_type: The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
6271
+ :param recursive_loop: This property is set to terminate unintended recursions. If set to ``Terminate``, Lambda detects and terminates unitended recursive loops. If set to ``Allow`` Lambda lets recursions be and does not terminate it.
6250
6272
  :param reserved_concurrent_executions: The number of simultaneous executions to reserve for the function.
6251
- :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . 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 <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_ . For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_ .
6252
- :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
6253
- :param snap_start: The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
6273
+ :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. 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 <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.
6274
+ :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
6275
+ :param snap_start: The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
6254
6276
  :param tags: A list of `tags <https://docs.aws.amazon.com/lambda/latest/dg/tagging.html>`_ to apply to the function.
6255
- :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_ .
6256
- :param tracing_config: Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .
6257
- :param vpc_config: For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see `Configuring a Lambda function to access resources in a VPC <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
6277
+ :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_.
6278
+ :param tracing_config: The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
6279
+ :param vpc_config: The VPC security groups and subnets that are attached to a Lambda function. When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_. When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources. To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
6258
6280
  '''
6259
6281
  if __debug__:
6260
6282
  type_hints = typing.get_type_hints(_typecheckingstub__d971f3872acf20816e6da364ff9e6bec83fe2e68bbb9a7debc845b40036ee553)
@@ -6278,6 +6300,7 @@ class CfnFunction(
6278
6300
  logging_config=logging_config,
6279
6301
  memory_size=memory_size,
6280
6302
  package_type=package_type,
6303
+ recursive_loop=recursive_loop,
6281
6304
  reserved_concurrent_executions=reserved_concurrent_executions,
6282
6305
  runtime=runtime,
6283
6306
  runtime_management_config=runtime_management_config,
@@ -6323,8 +6346,7 @@ class CfnFunction(
6323
6346
  @builtins.property
6324
6347
  @jsii.member(jsii_name="attrArn")
6325
6348
  def attr_arn(self) -> builtins.str:
6326
- '''The Amazon Resource Name (ARN) of the function.
6327
-
6349
+ '''
6328
6350
  :cloudformationAttribute: Arn
6329
6351
  '''
6330
6352
  return typing.cast(builtins.str, jsii.get(self, "attrArn"))
@@ -6370,7 +6392,7 @@ class CfnFunction(
6370
6392
  @builtins.property
6371
6393
  @jsii.member(jsii_name="code")
6372
6394
  def code(self) -> typing.Union[_IResolvable_da3f097b, "CfnFunction.CodeProperty"]:
6373
- '''The code for the function.'''
6395
+ '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ 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.'''
6374
6396
  return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnFunction.CodeProperty"], jsii.get(self, "code"))
6375
6397
 
6376
6398
  @code.setter
@@ -6427,7 +6449,7 @@ class CfnFunction(
6427
6449
  def dead_letter_config(
6428
6450
  self,
6429
6451
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.DeadLetterConfigProperty"]]:
6430
- '''A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.'''
6452
+ '''The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.'''
6431
6453
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.DeadLetterConfigProperty"]], jsii.get(self, "deadLetterConfig"))
6432
6454
 
6433
6455
  @dead_letter_config.setter
@@ -6458,7 +6480,7 @@ class CfnFunction(
6458
6480
  def environment(
6459
6481
  self,
6460
6482
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.EnvironmentProperty"]]:
6461
- '''Environment variables that are accessible from function code during execution.'''
6483
+ '''A function's environment variable settings.'''
6462
6484
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.EnvironmentProperty"]], jsii.get(self, "environment"))
6463
6485
 
6464
6486
  @environment.setter
@@ -6554,7 +6576,7 @@ class CfnFunction(
6554
6576
  @builtins.property
6555
6577
  @jsii.member(jsii_name="kmsKeyArn")
6556
6578
  def kms_key_arn(self) -> typing.Optional[builtins.str]:
6557
- '''The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.'''
6579
+ '''The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.'''
6558
6580
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "kmsKeyArn"))
6559
6581
 
6560
6582
  @kms_key_arn.setter
@@ -6621,6 +6643,19 @@ class CfnFunction(
6621
6643
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
6622
6644
  jsii.set(self, "packageType", value)
6623
6645
 
6646
+ @builtins.property
6647
+ @jsii.member(jsii_name="recursiveLoop")
6648
+ def recursive_loop(self) -> typing.Optional[builtins.str]:
6649
+ '''This property is set to terminate unintended recursions.'''
6650
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "recursiveLoop"))
6651
+
6652
+ @recursive_loop.setter
6653
+ def recursive_loop(self, value: typing.Optional[builtins.str]) -> None:
6654
+ if __debug__:
6655
+ type_hints = typing.get_type_hints(_typecheckingstub__021080e0643735be55c0ce187b6c3482fd8d23af0a29c95ad94660f1cf184a90)
6656
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
6657
+ jsii.set(self, "recursiveLoop", value)
6658
+
6624
6659
  @builtins.property
6625
6660
  @jsii.member(jsii_name="reservedConcurrentExecutions")
6626
6661
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
@@ -6640,7 +6675,7 @@ class CfnFunction(
6640
6675
  @builtins.property
6641
6676
  @jsii.member(jsii_name="runtime")
6642
6677
  def runtime(self) -> typing.Optional[builtins.str]:
6643
- '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . 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.'''
6678
+ '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. 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 <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.'''
6644
6679
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "runtime"))
6645
6680
 
6646
6681
  @runtime.setter
@@ -6673,7 +6708,7 @@ class CfnFunction(
6673
6708
  def snap_start(
6674
6709
  self,
6675
6710
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.SnapStartProperty"]]:
6676
- '''The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.'''
6711
+ '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.'''
6677
6712
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.SnapStartProperty"]], jsii.get(self, "snapStart"))
6678
6713
 
6679
6714
  @snap_start.setter
@@ -6717,7 +6752,7 @@ class CfnFunction(
6717
6752
  def tracing_config(
6718
6753
  self,
6719
6754
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.TracingConfigProperty"]]:
6720
- '''Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .'''
6755
+ '''The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.'''
6721
6756
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.TracingConfigProperty"]], jsii.get(self, "tracingConfig"))
6722
6757
 
6723
6758
  @tracing_config.setter
@@ -6735,7 +6770,7 @@ class CfnFunction(
6735
6770
  def vpc_config(
6736
6771
  self,
6737
6772
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.VpcConfigProperty"]]:
6738
- '''For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.'''
6773
+ '''The VPC security groups and subnets that are attached to a Lambda function.'''
6739
6774
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.VpcConfigProperty"]], jsii.get(self, "vpcConfig"))
6740
6775
 
6741
6776
  @vpc_config.setter
@@ -6769,15 +6804,13 @@ class CfnFunction(
6769
6804
  s3_object_version: typing.Optional[builtins.str] = None,
6770
6805
  zip_file: typing.Optional[builtins.str] = None,
6771
6806
  ) -> None:
6772
- '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ 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.
6773
-
6774
- 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.
6807
+ '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ 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.
6775
6808
 
6776
6809
  :param image_uri: URI of a `container image <https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html>`_ in the Amazon ECR registry.
6777
- :param s3_bucket: An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account .
6810
+ :param s3_bucket: An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account.
6778
6811
  :param s3_key: The Amazon S3 key of the deployment package.
6779
6812
  :param s3_object_version: For versioned objects, the version of the deployment package object to use.
6780
- :param zip_file: (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, AWS CloudFormation places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ . This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index`` . For example, ``index.handler`` . For JSON, you must escape quotes and special characters such as newline ( ``\\n`` ) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ( `cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_ ) that simplifies sending responses. See `Using AWS Lambda with AWS CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6813
+ :param zip_file: (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_. This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module (`cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_) that simplifies sending responses. See `Using Lambda with CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6781
6814
 
6782
6815
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html
6783
6816
  :exampleMetadata: fixture=_generated
@@ -6826,9 +6859,9 @@ class CfnFunction(
6826
6859
 
6827
6860
  @builtins.property
6828
6861
  def s3_bucket(self) -> typing.Optional[builtins.str]:
6829
- '''An Amazon S3 bucket in the same AWS Region as your function.
6862
+ '''An Amazon S3 bucket in the same AWS-Region as your function.
6830
6863
 
6831
- The bucket can be in a different AWS account .
6864
+ The bucket can be in a different AWS-account.
6832
6865
 
6833
6866
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket
6834
6867
  '''
@@ -6855,11 +6888,7 @@ class CfnFunction(
6855
6888
 
6856
6889
  @builtins.property
6857
6890
  def zip_file(self) -> typing.Optional[builtins.str]:
6858
- '''(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, AWS CloudFormation places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ . This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index`` . For example, ``index.handler`` .
6859
-
6860
- For JSON, you must escape quotes and special characters such as newline ( ``\\n`` ) with a backslash.
6861
-
6862
- If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ( `cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_ ) that simplifies sending responses. See `Using AWS Lambda with AWS CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6891
+ '''(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_. This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module (`cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_) that simplifies sending responses. See `Using Lambda with CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6863
6892
 
6864
6893
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile
6865
6894
  '''
@@ -6943,7 +6972,7 @@ class CfnFunction(
6943
6972
 
6944
6973
  You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
6945
6974
 
6946
- :param variables: Environment variable key-value pairs. For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_ .
6975
+ :param variables: Environment variable key-value pairs. For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_.
6947
6976
 
6948
6977
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html
6949
6978
  :exampleMetadata: fixture=_generated
@@ -6973,7 +7002,7 @@ class CfnFunction(
6973
7002
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]]:
6974
7003
  '''Environment variable key-value pairs.
6975
7004
 
6976
- For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_ .
7005
+ For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_.
6977
7006
 
6978
7007
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html#cfn-lambda-function-environment-variables
6979
7008
  '''
@@ -7057,10 +7086,10 @@ class CfnFunction(
7057
7086
  arn: builtins.str,
7058
7087
  local_mount_path: builtins.str,
7059
7088
  ) -> None:
7060
- '''Details about the connection between a Lambda function and an `Amazon EFS file system <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html>`_ .
7089
+ '''Details about the connection between a Lambda function and an `Amazon EFS file system <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html>`_.
7061
7090
 
7062
7091
  :param arn: The Amazon Resource Name (ARN) of the Amazon EFS access point that provides access to the file system.
7063
- :param local_mount_path: The path where the function can access the file system, starting with ``/mnt/`` .
7092
+ :param local_mount_path: The path where the function can access the file system, starting with ``/mnt/``.
7064
7093
 
7065
7094
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html
7066
7095
  :exampleMetadata: fixture=_generated
@@ -7097,7 +7126,7 @@ class CfnFunction(
7097
7126
 
7098
7127
  @builtins.property
7099
7128
  def local_mount_path(self) -> builtins.str:
7100
- '''The path where the function can access the file system, starting with ``/mnt/`` .
7129
+ '''The path where the function can access the file system, starting with ``/mnt/``.
7101
7130
 
7102
7131
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath
7103
7132
  '''
@@ -7135,7 +7164,7 @@ class CfnFunction(
7135
7164
  ) -> None:
7136
7165
  '''Configuration values that override the container image Dockerfile settings.
7137
7166
 
7138
- For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
7167
+ For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
7139
7168
 
7140
7169
  :param command: Specifies parameters that you want to pass in with ENTRYPOINT. You can specify a maximum of 1,500 parameters in the list.
7141
7170
  :param entry_point: Specifies the entry point to their application, which is typically the location of the runtime executable. You can specify a maximum of 1,500 string entries in the list.
@@ -7236,7 +7265,7 @@ class CfnFunction(
7236
7265
 
7237
7266
  :param application_log_level: Set this property to filter the application logs for your function that Lambda sends to CloudWatch. Lambda only sends application logs at the selected level of detail and lower, where ``TRACE`` is the highest level and ``FATAL`` is the lowest.
7238
7267
  :param log_format: The format in which Lambda sends your function's application and system logs to CloudWatch. Select between plain text and structured JSON.
7239
- :param log_group: The name of the Amazon CloudWatch log group the function sends logs to. By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>`` . To use a different log group, enter an existing log group or enter a new log group name.
7268
+ :param log_group: The name of the Amazon CloudWatch log group the function sends logs to. By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>``. To use a different log group, enter an existing log group or enter a new log group name.
7240
7269
  :param system_log_level: Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level of detail and lower, where ``DEBUG`` is the highest level and ``WARN`` is the lowest.
7241
7270
 
7242
7271
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html
@@ -7297,7 +7326,7 @@ class CfnFunction(
7297
7326
  def log_group(self) -> typing.Optional[builtins.str]:
7298
7327
  '''The name of the Amazon CloudWatch log group the function sends logs to.
7299
7328
 
7300
- By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>`` . To use a different log group, enter an existing log group or enter a new log group name.
7329
+ By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>``. To use a different log group, enter an existing log group or enter a new log group name.
7301
7330
 
7302
7331
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html#cfn-lambda-function-loggingconfig-loggroup
7303
7332
  '''
@@ -7343,10 +7372,10 @@ class CfnFunction(
7343
7372
  ) -> None:
7344
7373
  '''Sets the runtime management configuration for a function's version.
7345
7374
 
7346
- For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
7375
+ For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
7347
7376
 
7348
- :param update_runtime_on: Specify the runtime update mode. - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_ . This is the best choice for most customers to ensure they always benefit from runtime updates. - *FunctionUpdate* - Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_ . *Valid Values* : ``Auto`` | ``FunctionUpdate`` | ``Manual``
7349
- :param runtime_version_arn: The ARN of the runtime version you want the function to use. .. epigraph:: This is only required if you're using the *Manual* runtime update mode.
7377
+ :param update_runtime_on: Specify the runtime update mode. - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_. This is the best choice for most customers to ensure they always benefit from runtime updates. - *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_. *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``
7378
+ :param runtime_version_arn: The ARN of the runtime version you want the function to use. This is only required if you're using the *Manual* runtime update mode.
7350
7379
 
7351
7380
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html
7352
7381
  :exampleMetadata: fixture=_generated
@@ -7378,11 +7407,11 @@ class CfnFunction(
7378
7407
  def update_runtime_on(self) -> builtins.str:
7379
7408
  '''Specify the runtime update mode.
7380
7409
 
7381
- - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_ . This is the best choice for most customers to ensure they always benefit from runtime updates.
7382
- - *FunctionUpdate* - Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.
7383
- - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_ .
7410
+ - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_. This is the best choice for most customers to ensure they always benefit from runtime updates.
7411
+ - *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.
7412
+ - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_.
7384
7413
 
7385
- *Valid Values* : ``Auto`` | ``FunctionUpdate`` | ``Manual``
7414
+ *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``
7386
7415
 
7387
7416
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html#cfn-lambda-function-runtimemanagementconfig-updateruntimeon
7388
7417
  '''
@@ -7394,9 +7423,7 @@ class CfnFunction(
7394
7423
  def runtime_version_arn(self) -> typing.Optional[builtins.str]:
7395
7424
  '''The ARN of the runtime version you want the function to use.
7396
7425
 
7397
- .. epigraph::
7398
-
7399
- This is only required if you're using the *Manual* runtime update mode.
7426
+ This is only required if you're using the *Manual* runtime update mode.
7400
7427
 
7401
7428
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html#cfn-lambda-function-runtimemanagementconfig-runtimeversionarn
7402
7429
  '''
@@ -7421,7 +7448,7 @@ class CfnFunction(
7421
7448
  )
7422
7449
  class SnapStartProperty:
7423
7450
  def __init__(self, *, apply_on: builtins.str) -> None:
7424
- '''The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7451
+ '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7425
7452
 
7426
7453
  :param apply_on: Set ``ApplyOn`` to ``PublishedVersions`` to create a snapshot of the initialized execution environment when you publish a function version.
7427
7454
 
@@ -7483,8 +7510,8 @@ class CfnFunction(
7483
7510
  ) -> None:
7484
7511
  '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7485
7512
 
7486
- :param apply_on: When set to ``PublishedVersions`` , Lambda creates a snapshot of the execution environment when you publish a function version.
7487
- :param optimization_status: When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_ , this response element indicates whether SnapStart is activated for the specified function version.
7513
+ :param apply_on: When set to ``PublishedVersions``, Lambda creates a snapshot of the execution environment when you publish a function version.
7514
+ :param optimization_status: When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_, this response element indicates whether SnapStart is activated for the specified function version.
7488
7515
 
7489
7516
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstartresponse.html
7490
7517
  :exampleMetadata: fixture=_generated
@@ -7512,7 +7539,7 @@ class CfnFunction(
7512
7539
 
7513
7540
  @builtins.property
7514
7541
  def apply_on(self) -> typing.Optional[builtins.str]:
7515
- '''When set to ``PublishedVersions`` , Lambda creates a snapshot of the execution environment when you publish a function version.
7542
+ '''When set to ``PublishedVersions``, Lambda creates a snapshot of the execution environment when you publish a function version.
7516
7543
 
7517
7544
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstartresponse.html#cfn-lambda-function-snapstartresponse-applyon
7518
7545
  '''
@@ -7521,7 +7548,7 @@ class CfnFunction(
7521
7548
 
7522
7549
  @builtins.property
7523
7550
  def optimization_status(self) -> typing.Optional[builtins.str]:
7524
- '''When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_ , this response element indicates whether SnapStart is activated for the specified function version.
7551
+ '''When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_, this response element indicates whether SnapStart is activated for the specified function version.
7525
7552
 
7526
7553
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstartresponse.html#cfn-lambda-function-snapstartresponse-optimizationstatus
7527
7554
  '''
@@ -7546,7 +7573,7 @@ class CfnFunction(
7546
7573
  )
7547
7574
  class TracingConfigProperty:
7548
7575
  def __init__(self, *, mode: typing.Optional[builtins.str] = None) -> None:
7549
- '''The function's `AWS X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active`` .
7576
+ '''The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
7550
7577
 
7551
7578
  :param mode: The tracing mode.
7552
7579
 
@@ -7609,12 +7636,9 @@ class CfnFunction(
7609
7636
  ) -> None:
7610
7637
  '''The VPC security groups and subnets that are attached to a Lambda function.
7611
7638
 
7612
- When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
7613
- .. epigraph::
7614
-
7615
- When you delete a function, AWS CloudFormation monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before AWS CloudFormation can delete the VPC's resources.
7616
-
7617
- To monitor network interfaces, AWS CloudFormation needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, AWS CloudFormation does not wait for network interfaces to be deleted.
7639
+ When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_.
7640
+ When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources.
7641
+ To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
7618
7642
 
7619
7643
  :param ipv6_allowed_for_dual_stack: Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.
7620
7644
  :param security_group_ids: A list of VPC security group IDs.
@@ -7710,6 +7734,7 @@ class CfnFunction(
7710
7734
  "logging_config": "loggingConfig",
7711
7735
  "memory_size": "memorySize",
7712
7736
  "package_type": "packageType",
7737
+ "recursive_loop": "recursiveLoop",
7713
7738
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
7714
7739
  "runtime": "runtime",
7715
7740
  "runtime_management_config": "runtimeManagementConfig",
@@ -7741,6 +7766,7 @@ class CfnFunctionProps:
7741
7766
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7742
7767
  memory_size: typing.Optional[jsii.Number] = None,
7743
7768
  package_type: typing.Optional[builtins.str] = None,
7769
+ recursive_loop: typing.Optional[builtins.str] = None,
7744
7770
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
7745
7771
  runtime: typing.Optional[builtins.str] = None,
7746
7772
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.RuntimeManagementConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -7752,31 +7778,32 @@ class CfnFunctionProps:
7752
7778
  ) -> None:
7753
7779
  '''Properties for defining a ``CfnFunction``.
7754
7780
 
7755
- :param code: The code for the function.
7781
+ :param code: The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ 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.
7756
7782
  :param role: The Amazon Resource Name (ARN) of the function's execution role.
7757
- :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64`` .
7783
+ :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
7758
7784
  :param code_signing_config_arn: To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
7759
- :param dead_letter_config: A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see `Dead-letter queues <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq>`_ .
7785
+ :param dead_letter_config: The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.
7760
7786
  :param description: A description of the function.
7761
- :param environment: Environment variables that are accessible from function code during execution.
7787
+ :param environment: A function's environment variable settings. You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
7762
7788
  :param ephemeral_storage: The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
7763
- :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ .
7764
- :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
7765
- :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_ .
7766
- :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
7767
- :param kms_key_arn: The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.
7789
+ :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_.
7790
+ :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
7791
+ :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_.
7792
+ :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
7793
+ :param kms_key_arn: The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.
7768
7794
  :param layers: A list of `function layers <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html>`_ to add to the function's execution environment. Specify each layer by its ARN, including the version.
7769
7795
  :param logging_config: The function's Amazon CloudWatch Logs configuration settings.
7770
7796
  :param memory_size: The amount of `memory available to the function <https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console>`_ 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.
7771
7797
  :param package_type: The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
7798
+ :param recursive_loop: This property is set to terminate unintended recursions. If set to ``Terminate``, Lambda detects and terminates unitended recursive loops. If set to ``Allow`` Lambda lets recursions be and does not terminate it.
7772
7799
  :param reserved_concurrent_executions: The number of simultaneous executions to reserve for the function.
7773
- :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . 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 <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_ . For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_ .
7774
- :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
7775
- :param snap_start: The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7800
+ :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. 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 <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.
7801
+ :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
7802
+ :param snap_start: The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7776
7803
  :param tags: A list of `tags <https://docs.aws.amazon.com/lambda/latest/dg/tagging.html>`_ to apply to the function.
7777
- :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_ .
7778
- :param tracing_config: Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .
7779
- :param vpc_config: For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see `Configuring a Lambda function to access resources in a VPC <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
7804
+ :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_.
7805
+ :param tracing_config: The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
7806
+ :param vpc_config: The VPC security groups and subnets that are attached to a Lambda function. When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_. When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources. To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
7780
7807
 
7781
7808
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
7782
7809
  :exampleMetadata: fixture=_generated
@@ -7833,6 +7860,7 @@ class CfnFunctionProps:
7833
7860
  ),
7834
7861
  memory_size=123,
7835
7862
  package_type="packageType",
7863
+ recursive_loop="recursiveLoop",
7836
7864
  reserved_concurrent_executions=123,
7837
7865
  runtime="runtime",
7838
7866
  runtime_management_config=lambda.CfnFunction.RuntimeManagementConfigProperty(
@@ -7878,6 +7906,7 @@ class CfnFunctionProps:
7878
7906
  check_type(argname="argument logging_config", value=logging_config, expected_type=type_hints["logging_config"])
7879
7907
  check_type(argname="argument memory_size", value=memory_size, expected_type=type_hints["memory_size"])
7880
7908
  check_type(argname="argument package_type", value=package_type, expected_type=type_hints["package_type"])
7909
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
7881
7910
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
7882
7911
  check_type(argname="argument runtime", value=runtime, expected_type=type_hints["runtime"])
7883
7912
  check_type(argname="argument runtime_management_config", value=runtime_management_config, expected_type=type_hints["runtime_management_config"])
@@ -7920,6 +7949,8 @@ class CfnFunctionProps:
7920
7949
  self._values["memory_size"] = memory_size
7921
7950
  if package_type is not None:
7922
7951
  self._values["package_type"] = package_type
7952
+ if recursive_loop is not None:
7953
+ self._values["recursive_loop"] = recursive_loop
7923
7954
  if reserved_concurrent_executions is not None:
7924
7955
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
7925
7956
  if runtime is not None:
@@ -7939,7 +7970,7 @@ class CfnFunctionProps:
7939
7970
 
7940
7971
  @builtins.property
7941
7972
  def code(self) -> typing.Union[_IResolvable_da3f097b, CfnFunction.CodeProperty]:
7942
- '''The code for the function.
7973
+ '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ 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.
7943
7974
 
7944
7975
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code
7945
7976
  '''
@@ -7961,7 +7992,7 @@ class CfnFunctionProps:
7961
7992
  def architectures(self) -> typing.Optional[typing.List[builtins.str]]:
7962
7993
  '''The instruction set architecture that the function supports.
7963
7994
 
7964
- Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64`` .
7995
+ Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
7965
7996
 
7966
7997
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures
7967
7998
  '''
@@ -7972,8 +8003,7 @@ class CfnFunctionProps:
7972
8003
  def code_signing_config_arn(self) -> typing.Optional[builtins.str]:
7973
8004
  '''To enable code signing for this function, specify the ARN of a code-signing configuration.
7974
8005
 
7975
- A code-signing configuration
7976
- includes a set of signing profiles, which define the trusted publishers for this function.
8006
+ A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
7977
8007
 
7978
8008
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn
7979
8009
  '''
@@ -7984,9 +8014,7 @@ class CfnFunctionProps:
7984
8014
  def dead_letter_config(
7985
8015
  self,
7986
8016
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.DeadLetterConfigProperty]]:
7987
- '''A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.
7988
-
7989
- For more information, see `Dead-letter queues <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq>`_ .
8017
+ '''The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.
7990
8018
 
7991
8019
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-deadletterconfig
7992
8020
  '''
@@ -8006,7 +8034,9 @@ class CfnFunctionProps:
8006
8034
  def environment(
8007
8035
  self,
8008
8036
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.EnvironmentProperty]]:
8009
- '''Environment variables that are accessible from function code during execution.
8037
+ '''A function's environment variable settings.
8038
+
8039
+ You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
8010
8040
 
8011
8041
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment
8012
8042
  '''
@@ -8033,8 +8063,7 @@ class CfnFunctionProps:
8033
8063
  '''Connection settings for an Amazon EFS file system.
8034
8064
 
8035
8065
  To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
8036
-
8037
- For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ .
8066
+ For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_.
8038
8067
 
8039
8068
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs
8040
8069
  '''
@@ -8045,8 +8074,7 @@ class CfnFunctionProps:
8045
8074
  def function_name(self) -> typing.Optional[builtins.str]:
8046
8075
  '''The name of the Lambda function, up to 64 characters in length.
8047
8076
 
8048
- If you don't specify a name, AWS CloudFormation generates one.
8049
-
8077
+ If you don't specify a name, CFN generates one.
8050
8078
  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
8051
8079
 
8052
8080
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname
@@ -8058,7 +8086,7 @@ class CfnFunctionProps:
8058
8086
  def handler(self) -> typing.Optional[builtins.str]:
8059
8087
  '''The name of the method within your code that Lambda calls to run your function.
8060
8088
 
8061
- Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_ .
8089
+ Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_.
8062
8090
 
8063
8091
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler
8064
8092
  '''
@@ -8071,7 +8099,7 @@ class CfnFunctionProps:
8071
8099
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.ImageConfigProperty]]:
8072
8100
  '''Configuration values that override the container image Dockerfile settings.
8073
8101
 
8074
- For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
8102
+ For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
8075
8103
 
8076
8104
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig
8077
8105
  '''
@@ -8080,7 +8108,7 @@ class CfnFunctionProps:
8080
8108
 
8081
8109
  @builtins.property
8082
8110
  def kms_key_arn(self) -> typing.Optional[builtins.str]:
8083
- '''The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.
8111
+ '''The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ 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.
8084
8112
 
8085
8113
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn
8086
8114
  '''
@@ -8127,6 +8155,17 @@ class CfnFunctionProps:
8127
8155
  result = self._values.get("package_type")
8128
8156
  return typing.cast(typing.Optional[builtins.str], result)
8129
8157
 
8158
+ @builtins.property
8159
+ def recursive_loop(self) -> typing.Optional[builtins.str]:
8160
+ '''This property is set to terminate unintended recursions.
8161
+
8162
+ If set to ``Terminate``, Lambda detects and terminates unitended recursive loops. If set to ``Allow`` Lambda lets recursions be and does not terminate it.
8163
+
8164
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-recursiveloop
8165
+ '''
8166
+ result = self._values.get("recursive_loop")
8167
+ return typing.cast(typing.Optional[builtins.str], result)
8168
+
8130
8169
  @builtins.property
8131
8170
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
8132
8171
  '''The number of simultaneous executions to reserve for the function.
@@ -8138,11 +8177,7 @@ class CfnFunctionProps:
8138
8177
 
8139
8178
  @builtins.property
8140
8179
  def runtime(self) -> typing.Optional[builtins.str]:
8141
- '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . 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.
8142
-
8143
- 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 <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_ .
8144
-
8145
- For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_ .
8180
+ '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. 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 <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.
8146
8181
 
8147
8182
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime
8148
8183
  '''
@@ -8155,7 +8190,7 @@ class CfnFunctionProps:
8155
8190
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.RuntimeManagementConfigProperty]]:
8156
8191
  '''Sets the runtime management configuration for a function's version.
8157
8192
 
8158
- For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
8193
+ For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
8159
8194
 
8160
8195
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtimemanagementconfig
8161
8196
  '''
@@ -8166,7 +8201,7 @@ class CfnFunctionProps:
8166
8201
  def snap_start(
8167
8202
  self,
8168
8203
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.SnapStartProperty]]:
8169
- '''The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
8204
+ '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
8170
8205
 
8171
8206
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart
8172
8207
  '''
@@ -8186,7 +8221,7 @@ class CfnFunctionProps:
8186
8221
  def timeout(self) -> typing.Optional[jsii.Number]:
8187
8222
  '''The amount of time (in seconds) that Lambda allows a function to run before stopping it.
8188
8223
 
8189
- The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_ .
8224
+ The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_.
8190
8225
 
8191
8226
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout
8192
8227
  '''
@@ -8197,7 +8232,7 @@ class CfnFunctionProps:
8197
8232
  def tracing_config(
8198
8233
  self,
8199
8234
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.TracingConfigProperty]]:
8200
- '''Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .
8235
+ '''The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
8201
8236
 
8202
8237
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig
8203
8238
  '''
@@ -8208,9 +8243,11 @@ class CfnFunctionProps:
8208
8243
  def vpc_config(
8209
8244
  self,
8210
8245
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.VpcConfigProperty]]:
8211
- '''For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.
8246
+ '''The VPC security groups and subnets that are attached to a Lambda function.
8212
8247
 
8213
- When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see `Configuring a Lambda function to access resources in a VPC <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
8248
+ When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_.
8249
+ When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources.
8250
+ To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
8214
8251
 
8215
8252
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-vpcconfig
8216
8253
  '''
@@ -14082,6 +14119,7 @@ class FunctionAttributes:
14082
14119
  "params_and_secrets": "paramsAndSecrets",
14083
14120
  "profiling": "profiling",
14084
14121
  "profiling_group": "profilingGroup",
14122
+ "recursive_loop": "recursiveLoop",
14085
14123
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
14086
14124
  "role": "role",
14087
14125
  "runtime_management_mode": "runtimeManagementMode",
@@ -14135,6 +14173,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14135
14173
  params_and_secrets: typing.Optional["ParamsAndSecretsLayerVersion"] = None,
14136
14174
  profiling: typing.Optional[builtins.bool] = None,
14137
14175
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
14176
+ recursive_loop: typing.Optional["RecursiveLoop"] = None,
14138
14177
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
14139
14178
  role: typing.Optional[_IRole_235f5d8e] = None,
14140
14179
  runtime_management_mode: typing.Optional["RuntimeManagementMode"] = None,
@@ -14185,6 +14224,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14185
14224
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
14186
14225
  :param profiling: Enable profiling. Default: - No profiling.
14187
14226
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
14227
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
14188
14228
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
14189
14229
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
14190
14230
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -14290,6 +14330,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14290
14330
  params_and_secrets=params_and_secrets_layer_version,
14291
14331
  profiling=False,
14292
14332
  profiling_group=profiling_group,
14333
+ recursive_loop=lambda_.RecursiveLoop.ALLOW,
14293
14334
  reserved_concurrent_executions=123,
14294
14335
  retry_attempts=123,
14295
14336
  role=role,
@@ -14357,6 +14398,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14357
14398
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
14358
14399
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
14359
14400
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
14401
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
14360
14402
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
14361
14403
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
14362
14404
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -14441,6 +14483,8 @@ class FunctionOptions(EventInvokeConfigOptions):
14441
14483
  self._values["profiling"] = profiling
14442
14484
  if profiling_group is not None:
14443
14485
  self._values["profiling_group"] = profiling_group
14486
+ if recursive_loop is not None:
14487
+ self._values["recursive_loop"] = recursive_loop
14444
14488
  if reserved_concurrent_executions is not None:
14445
14489
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
14446
14490
  if role is not None:
@@ -14889,6 +14933,17 @@ class FunctionOptions(EventInvokeConfigOptions):
14889
14933
  result = self._values.get("profiling_group")
14890
14934
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
14891
14935
 
14936
+ @builtins.property
14937
+ def recursive_loop(self) -> typing.Optional["RecursiveLoop"]:
14938
+ '''Sets the Recursive Loop Protection for Lambda Function.
14939
+
14940
+ It lets Lambda detect and terminate unintended recusrive loops.
14941
+
14942
+ :default: RecursiveLoop.Terminate
14943
+ '''
14944
+ result = self._values.get("recursive_loop")
14945
+ return typing.cast(typing.Optional["RecursiveLoop"], result)
14946
+
14892
14947
  @builtins.property
14893
14948
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
14894
14949
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -15079,6 +15134,7 @@ class FunctionOptions(EventInvokeConfigOptions):
15079
15134
  "params_and_secrets": "paramsAndSecrets",
15080
15135
  "profiling": "profiling",
15081
15136
  "profiling_group": "profilingGroup",
15137
+ "recursive_loop": "recursiveLoop",
15082
15138
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
15083
15139
  "role": "role",
15084
15140
  "runtime_management_mode": "runtimeManagementMode",
@@ -15135,6 +15191,7 @@ class FunctionProps(FunctionOptions):
15135
15191
  params_and_secrets: typing.Optional["ParamsAndSecretsLayerVersion"] = None,
15136
15192
  profiling: typing.Optional[builtins.bool] = None,
15137
15193
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
15194
+ recursive_loop: typing.Optional["RecursiveLoop"] = None,
15138
15195
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
15139
15196
  role: typing.Optional[_IRole_235f5d8e] = None,
15140
15197
  runtime_management_mode: typing.Optional["RuntimeManagementMode"] = None,
@@ -15187,6 +15244,7 @@ class FunctionProps(FunctionOptions):
15187
15244
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
15188
15245
  :param profiling: Enable profiling. Default: - No profiling.
15189
15246
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
15247
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
15190
15248
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
15191
15249
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
15192
15250
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -15275,6 +15333,7 @@ class FunctionProps(FunctionOptions):
15275
15333
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
15276
15334
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
15277
15335
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
15336
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
15278
15337
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
15279
15338
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
15280
15339
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -15366,6 +15425,8 @@ class FunctionProps(FunctionOptions):
15366
15425
  self._values["profiling"] = profiling
15367
15426
  if profiling_group is not None:
15368
15427
  self._values["profiling_group"] = profiling_group
15428
+ if recursive_loop is not None:
15429
+ self._values["recursive_loop"] = recursive_loop
15369
15430
  if reserved_concurrent_executions is not None:
15370
15431
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
15371
15432
  if role is not None:
@@ -15814,6 +15875,17 @@ class FunctionProps(FunctionOptions):
15814
15875
  result = self._values.get("profiling_group")
15815
15876
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
15816
15877
 
15878
+ @builtins.property
15879
+ def recursive_loop(self) -> typing.Optional["RecursiveLoop"]:
15880
+ '''Sets the Recursive Loop Protection for Lambda Function.
15881
+
15882
+ It lets Lambda detect and terminate unintended recusrive loops.
15883
+
15884
+ :default: RecursiveLoop.Terminate
15885
+ '''
15886
+ result = self._values.get("recursive_loop")
15887
+ return typing.cast(typing.Optional["RecursiveLoop"], result)
15888
+
15817
15889
  @builtins.property
15818
15890
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
15819
15891
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -19784,6 +19856,27 @@ class Permission:
19784
19856
  )
19785
19857
 
19786
19858
 
19859
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_lambda.RecursiveLoop")
19860
+ class RecursiveLoop(enum.Enum):
19861
+ '''
19862
+ :exampleMetadata: infused
19863
+
19864
+ Example::
19865
+
19866
+ fn = lambda_.Function(self, "MyFunction",
19867
+ code=lambda_.Code.from_asset(path.join(__dirname, "handler.zip")),
19868
+ runtime=lambda_.Runtime.JAVA_11,
19869
+ handler="example.Handler::handleRequest",
19870
+ recursive_loop=lambda_.RecursiveLoop.TERMINATE
19871
+ )
19872
+ '''
19873
+
19874
+ ALLOW = "ALLOW"
19875
+ '''Allows the recursive loop to happen and does not terminate it.'''
19876
+ TERMINATE = "TERMINATE"
19877
+ '''Terminates the recursive loop.'''
19878
+
19879
+
19787
19880
  @jsii.data_type(
19788
19881
  jsii_type="aws-cdk-lib.aws_lambda.ResourceBindOptions",
19789
19882
  jsii_struct_bases=[],
@@ -20493,6 +20586,7 @@ class S3Code(Code, metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_lambda.S3
20493
20586
  "params_and_secrets": "paramsAndSecrets",
20494
20587
  "profiling": "profiling",
20495
20588
  "profiling_group": "profilingGroup",
20589
+ "recursive_loop": "recursiveLoop",
20496
20590
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
20497
20591
  "role": "role",
20498
20592
  "runtime_management_mode": "runtimeManagementMode",
@@ -20551,6 +20645,7 @@ class SingletonFunctionProps(FunctionProps):
20551
20645
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
20552
20646
  profiling: typing.Optional[builtins.bool] = None,
20553
20647
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
20648
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
20554
20649
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
20555
20650
  role: typing.Optional[_IRole_235f5d8e] = None,
20556
20651
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -20606,6 +20701,7 @@ class SingletonFunctionProps(FunctionProps):
20606
20701
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
20607
20702
  :param profiling: Enable profiling. Default: - No profiling.
20608
20703
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
20704
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
20609
20705
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
20610
20706
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
20611
20707
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -20679,6 +20775,7 @@ class SingletonFunctionProps(FunctionProps):
20679
20775
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
20680
20776
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
20681
20777
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
20778
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
20682
20779
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
20683
20780
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
20684
20781
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -20773,6 +20870,8 @@ class SingletonFunctionProps(FunctionProps):
20773
20870
  self._values["profiling"] = profiling
20774
20871
  if profiling_group is not None:
20775
20872
  self._values["profiling_group"] = profiling_group
20873
+ if recursive_loop is not None:
20874
+ self._values["recursive_loop"] = recursive_loop
20776
20875
  if reserved_concurrent_executions is not None:
20777
20876
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
20778
20877
  if role is not None:
@@ -21221,6 +21320,17 @@ class SingletonFunctionProps(FunctionProps):
21221
21320
  result = self._values.get("profiling_group")
21222
21321
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
21223
21322
 
21323
+ @builtins.property
21324
+ def recursive_loop(self) -> typing.Optional[RecursiveLoop]:
21325
+ '''Sets the Recursive Loop Protection for Lambda Function.
21326
+
21327
+ It lets Lambda detect and terminate unintended recusrive loops.
21328
+
21329
+ :default: RecursiveLoop.Terminate
21330
+ '''
21331
+ result = self._values.get("recursive_loop")
21332
+ return typing.cast(typing.Optional[RecursiveLoop], result)
21333
+
21224
21334
  @builtins.property
21225
21335
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
21226
21336
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -23416,6 +23526,7 @@ class CodeSigningConfig(
23416
23526
  "params_and_secrets": "paramsAndSecrets",
23417
23527
  "profiling": "profiling",
23418
23528
  "profiling_group": "profilingGroup",
23529
+ "recursive_loop": "recursiveLoop",
23419
23530
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
23420
23531
  "role": "role",
23421
23532
  "runtime_management_mode": "runtimeManagementMode",
@@ -23470,6 +23581,7 @@ class DockerImageFunctionProps(FunctionOptions):
23470
23581
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
23471
23582
  profiling: typing.Optional[builtins.bool] = None,
23472
23583
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
23584
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
23473
23585
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
23474
23586
  role: typing.Optional[_IRole_235f5d8e] = None,
23475
23587
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -23521,6 +23633,7 @@ class DockerImageFunctionProps(FunctionOptions):
23521
23633
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
23522
23634
  :param profiling: Enable profiling. Default: - No profiling.
23523
23635
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
23636
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
23524
23637
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
23525
23638
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
23526
23639
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -23588,6 +23701,7 @@ class DockerImageFunctionProps(FunctionOptions):
23588
23701
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
23589
23702
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
23590
23703
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
23704
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
23591
23705
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
23592
23706
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
23593
23707
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -23675,6 +23789,8 @@ class DockerImageFunctionProps(FunctionOptions):
23675
23789
  self._values["profiling"] = profiling
23676
23790
  if profiling_group is not None:
23677
23791
  self._values["profiling_group"] = profiling_group
23792
+ if recursive_loop is not None:
23793
+ self._values["recursive_loop"] = recursive_loop
23678
23794
  if reserved_concurrent_executions is not None:
23679
23795
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
23680
23796
  if role is not None:
@@ -24121,6 +24237,17 @@ class DockerImageFunctionProps(FunctionOptions):
24121
24237
  result = self._values.get("profiling_group")
24122
24238
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
24123
24239
 
24240
+ @builtins.property
24241
+ def recursive_loop(self) -> typing.Optional[RecursiveLoop]:
24242
+ '''Sets the Recursive Loop Protection for Lambda Function.
24243
+
24244
+ It lets Lambda detect and terminate unintended recusrive loops.
24245
+
24246
+ :default: RecursiveLoop.Terminate
24247
+ '''
24248
+ result = self._values.get("recursive_loop")
24249
+ return typing.cast(typing.Optional[RecursiveLoop], result)
24250
+
24124
24251
  @builtins.property
24125
24252
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
24126
24253
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -25509,6 +25636,7 @@ class SingletonFunction(
25509
25636
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
25510
25637
  profiling: typing.Optional[builtins.bool] = None,
25511
25638
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
25639
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
25512
25640
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
25513
25641
  role: typing.Optional[_IRole_235f5d8e] = None,
25514
25642
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -25565,6 +25693,7 @@ class SingletonFunction(
25565
25693
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
25566
25694
  :param profiling: Enable profiling. Default: - No profiling.
25567
25695
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
25696
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
25568
25697
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
25569
25698
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
25570
25699
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -25623,6 +25752,7 @@ class SingletonFunction(
25623
25752
  params_and_secrets=params_and_secrets,
25624
25753
  profiling=profiling,
25625
25754
  profiling_group=profiling_group,
25755
+ recursive_loop=recursive_loop,
25626
25756
  reserved_concurrent_executions=reserved_concurrent_executions,
25627
25757
  role=role,
25628
25758
  runtime_management_mode=runtime_management_mode,
@@ -26467,6 +26597,7 @@ class Function(
26467
26597
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
26468
26598
  profiling: typing.Optional[builtins.bool] = None,
26469
26599
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
26600
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
26470
26601
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
26471
26602
  role: typing.Optional[_IRole_235f5d8e] = None,
26472
26603
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -26521,6 +26652,7 @@ class Function(
26521
26652
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
26522
26653
  :param profiling: Enable profiling. Default: - No profiling.
26523
26654
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
26655
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
26524
26656
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
26525
26657
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
26526
26658
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -26577,6 +26709,7 @@ class Function(
26577
26709
  params_and_secrets=params_and_secrets,
26578
26710
  profiling=profiling,
26579
26711
  profiling_group=profiling_group,
26712
+ recursive_loop=recursive_loop,
26580
26713
  reserved_concurrent_executions=reserved_concurrent_executions,
26581
26714
  role=role,
26582
26715
  runtime_management_mode=runtime_management_mode,
@@ -27259,6 +27392,7 @@ class DockerImageFunction(
27259
27392
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
27260
27393
  profiling: typing.Optional[builtins.bool] = None,
27261
27394
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
27395
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
27262
27396
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
27263
27397
  role: typing.Optional[_IRole_235f5d8e] = None,
27264
27398
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -27311,6 +27445,7 @@ class DockerImageFunction(
27311
27445
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
27312
27446
  :param profiling: Enable profiling. Default: - No profiling.
27313
27447
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
27448
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
27314
27449
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
27315
27450
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
27316
27451
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -27365,6 +27500,7 @@ class DockerImageFunction(
27365
27500
  params_and_secrets=params_and_secrets,
27366
27501
  profiling=profiling,
27367
27502
  profiling_group=profiling_group,
27503
+ recursive_loop=recursive_loop,
27368
27504
  reserved_concurrent_executions=reserved_concurrent_executions,
27369
27505
  role=role,
27370
27506
  runtime_management_mode=runtime_management_mode,
@@ -27495,6 +27631,7 @@ __all__ = [
27495
27631
  "ParamsAndSecretsVersions",
27496
27632
  "Permission",
27497
27633
  "QualifiedFunctionBase",
27634
+ "RecursiveLoop",
27498
27635
  "ResourceBindOptions",
27499
27636
  "Runtime",
27500
27637
  "RuntimeFamily",
@@ -28208,6 +28345,7 @@ def _typecheckingstub__d971f3872acf20816e6da364ff9e6bec83fe2e68bbb9a7debc845b400
28208
28345
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
28209
28346
  memory_size: typing.Optional[jsii.Number] = None,
28210
28347
  package_type: typing.Optional[builtins.str] = None,
28348
+ recursive_loop: typing.Optional[builtins.str] = None,
28211
28349
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
28212
28350
  runtime: typing.Optional[builtins.str] = None,
28213
28351
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.RuntimeManagementConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -28334,6 +28472,12 @@ def _typecheckingstub__7f9bb5c748b58d456d8f996b07509c9991044629122c76de58eaabc34
28334
28472
  """Type checking stubs"""
28335
28473
  pass
28336
28474
 
28475
+ def _typecheckingstub__021080e0643735be55c0ce187b6c3482fd8d23af0a29c95ad94660f1cf184a90(
28476
+ value: typing.Optional[builtins.str],
28477
+ ) -> None:
28478
+ """Type checking stubs"""
28479
+ pass
28480
+
28337
28481
  def _typecheckingstub__776a8ed6e24e90be835cb39b621ff66305005b357a6debbf3a62f69d83289278(
28338
28482
  value: typing.Optional[jsii.Number],
28339
28483
  ) -> None:
@@ -28499,6 +28643,7 @@ def _typecheckingstub__06b7f494e25475a49ebed0d7ed6d0fca9653b5fa5e00ded0cba4fc40a
28499
28643
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
28500
28644
  memory_size: typing.Optional[jsii.Number] = None,
28501
28645
  package_type: typing.Optional[builtins.str] = None,
28646
+ recursive_loop: typing.Optional[builtins.str] = None,
28502
28647
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
28503
28648
  runtime: typing.Optional[builtins.str] = None,
28504
28649
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.RuntimeManagementConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -29382,6 +29527,7 @@ def _typecheckingstub__59918bb957d892739733c7a5849db990615fe5329709ad7ba703e0ee4
29382
29527
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
29383
29528
  profiling: typing.Optional[builtins.bool] = None,
29384
29529
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
29530
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
29385
29531
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
29386
29532
  role: typing.Optional[_IRole_235f5d8e] = None,
29387
29533
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -29435,6 +29581,7 @@ def _typecheckingstub__94e70d11aa3c53737d418dbb9983973dfc06dbdef5c8cc30613cc3c6d
29435
29581
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
29436
29582
  profiling: typing.Optional[builtins.bool] = None,
29437
29583
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
29584
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
29438
29585
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
29439
29586
  role: typing.Optional[_IRole_235f5d8e] = None,
29440
29587
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -29932,6 +30079,7 @@ def _typecheckingstub__68a03ec9f866a29c77aabcf8328c63a49511790fa9714874f255b3292
29932
30079
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
29933
30080
  profiling: typing.Optional[builtins.bool] = None,
29934
30081
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30082
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
29935
30083
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
29936
30084
  role: typing.Optional[_IRole_235f5d8e] = None,
29937
30085
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30183,6 +30331,7 @@ def _typecheckingstub__04dd97f4b18c00e7ee0981f2428664401ae0b75dbda6102ea3ef53d08
30183
30331
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30184
30332
  profiling: typing.Optional[builtins.bool] = None,
30185
30333
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30334
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30186
30335
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30187
30336
  role: typing.Optional[_IRole_235f5d8e] = None,
30188
30337
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30441,6 +30590,7 @@ def _typecheckingstub__e7b766bff13bb7266787cec9bebb600187e19c1672e530bb9cfa31649
30441
30590
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30442
30591
  profiling: typing.Optional[builtins.bool] = None,
30443
30592
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30593
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30444
30594
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30445
30595
  role: typing.Optional[_IRole_235f5d8e] = None,
30446
30596
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30647,6 +30797,7 @@ def _typecheckingstub__724895b6b59aaf2b678ef25f2beca19fb114fc04ff6b37edef28e12b3
30647
30797
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30648
30798
  profiling: typing.Optional[builtins.bool] = None,
30649
30799
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30800
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30650
30801
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30651
30802
  role: typing.Optional[_IRole_235f5d8e] = None,
30652
30803
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30790,6 +30941,7 @@ def _typecheckingstub__368a49fe1f866c7ea7986c57b6f8488d0fddea8f62bf05ec1ed7eb09b
30790
30941
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30791
30942
  profiling: typing.Optional[builtins.bool] = None,
30792
30943
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30944
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30793
30945
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30794
30946
  role: typing.Optional[_IRole_235f5d8e] = None,
30795
30947
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,