Metadata-Version: 2.1
Name: aws-cdk.aws-lambda-python
Version: 1.108.1
Summary: The CDK Construct Library for AWS Lambda in Python
Home-page: https://github.com/aws/aws-cdk
Author: Amazon Web Services
License: Apache-2.0
Project-URL: Source, https://github.com/aws/aws-cdk.git
Description: # Amazon Lambda Python Library
        
        <!--BEGIN STABILITY BANNER-->---
        
        
        ![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)
        
        > The APIs of higher level constructs in this module are experimental and under active development.
        > They are subject to non-backward compatible changes or removal in any future version. These are
        > not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be
        > announced in the release notes. This means that while you may use them, you may need to update
        > your source code when upgrading to a newer version of this package.
        
        ---
        <!--END STABILITY BANNER-->
        
        This library provides constructs for Python Lambda functions.
        
        To use this module, you will need to have Docker installed.
        
        ## Python Function
        
        Define a `PythonFunction`:
        
        ```python
        # Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
        import aws_cdk.aws_lambda as lambda_
        from aws_cdk.aws_lambda_python import PythonFunction
        
        PythonFunction(self, "MyFunction",
            entry="/path/to/my/function", # required
            index="my_index.py", # optional, defaults to 'index.py'
            handler="my_exported_func", # optional, defaults to 'handler'
            runtime=lambda_.Runtime.PYTHON_3_6
        )
        ```
        
        All other properties of `lambda.Function` are supported, see also the [AWS Lambda construct library](https://github.com/aws/aws-cdk/tree/master/packages/%40aws-cdk/aws-lambda).
        
        ## Module Dependencies
        
        If `requirements.txt` or `Pipfile` exists at the entry path, the construct will handle installing
        all required modules in a [Lambda compatible Docker container](https://gallery.ecr.aws/sam/build-python3.7)
        according to the `runtime`.
        
        Python bundles are only recreated and published when a file in a source directory has changed.
        Therefore (and as a general best-practice), it is highly recommended to commit a lockfile with a
        list of all transitive dependencies and their exact versions.
        This will ensure that when any dependency version is updated, the bundle asset is recreated and uploaded.
        
        To that end, we recommend using [`pipenv`](https://pipenv-fork.readthedocs.io/en/latest/basics.html#example-pipfile-lock) or [`poetry`](https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control) which has lockfile support.
        
        **Lambda with a requirements.txt**
        
        ```plaintext
        .
        ├── lambda_function.py # exports a function named 'handler'
        ├── requirements.txt # has to be present at the entry path
        ```
        
        **Lambda with a Pipfile**
        
        ```plaintext
        .
        ├── lambda_function.py # exports a function named 'handler'
        ├── Pipfile # has to be present at the entry path
        ├── Pipfile.lock # your lock file
        ```
        
        **Lambda with a poetry.lock**
        
        ```plaintext
        .
        ├── lambda_function.py # exports a function named 'handler'
        ├── pyproject.toml # has to be present at the entry path
        ├── poetry.lock # your poetry lock file
        ```
        
        **Lambda Layer Support**
        
        You may create a python-based lambda layer with `PythonLayerVersion`. If `PythonLayerVersion` detects a `requirements.txt`
        or `Pipfile` or `poetry.lock` with the associated `pyproject.toml` at the entry path, then `PythonLayerVersion` will include the dependencies inline with your code in the
        layer.
        
        ```python
        # Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
        lambda_.PythonFunction(self, "MyFunction",
            entry="/path/to/my/function",
            layers=[
                lambda_.PythonLayerVersion(self, "MyLayer",
                    entry="/path/to/my/layer"
                )
            ]
        )
        ```
        
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Typing :: Typed
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved
Classifier: Framework :: AWS CDK
Classifier: Framework :: AWS CDK :: 1
Requires-Python: >=3.6
Description-Content-Type: text/markdown
