:py:mod:`airflow.providers.amazon.aws.hooks.lambda_function`
============================================================

.. py:module:: airflow.providers.amazon.aws.hooks.lambda_function

.. autoapi-nested-parse::

   This module contains AWS Lambda hook



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.hooks.lambda_function.LambdaHook
   airflow.providers.amazon.aws.hooks.lambda_function.AwsLambdaHook




.. py:class:: LambdaHook(*args, **kwargs)

   Bases: :py:obj:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   Interact with AWS Lambda

   Additional arguments (such as ``aws_conn_id``) may be specified and
   are passed down to the underlying AwsBaseHook.

   .. seealso::
       :class:`~airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   :param function_name: AWS Lambda Function Name
   :param log_type: Tail Invocation Request
   :param qualifier: AWS Lambda Function Version or Alias Name
   :param invocation_type: AWS Lambda Invocation Type (RequestResponse, Event etc)

   .. py:method:: invoke_lambda(self, *, function_name, invocation_type = None, log_type = None, client_context = None, payload = None, qualifier = None)

      Invoke Lambda Function. Refer to the boto3 documentation for more info.


   .. py:method:: create_lambda(self, *, function_name, runtime, role, handler, code, description = None, timeout = None, memory_size = None, publish = None, vpc_config = None, package_type = None, dead_letter_config = None, environment = None, kms_key_arn = None, tracing_config = None, tags = None, layers = None, file_system_configs = None, image_config = None, code_signing_config_arn = None, architectures = None)

      Create a Lambda Function



.. py:class:: AwsLambdaHook(*args, **kwargs)

   Bases: :py:obj:`LambdaHook`

   This hook is deprecated.
   Please use :class:`airflow.providers.amazon.aws.hooks.lambda_function.LambdaHook`.


