Introduction
The luna-lambda is a service that allows to write and deploy python modules granted by user into kubernetes service. The above-mentioned entities called lambda and jobs.
It is highly recommended to learn as more as possible about the product entities and mechanisms (especially about handlers and video analytics) before start work with lambdas.
The luna-lambda will allow to write and use your own handler (handler lambda) for the product, task (tasks lambda), video-agent (agent lambda) or write an external service (standalone lambda) which will closely interact with the product and have several features typical for Luna-services (such as logging, configurator reload, etc) out of the box.
There are two main entities which the service operates: lambdas and jobs. Jobs can be created only within workflows. The main difference between lambdas and jobs is that lambdas lifecycle is primarily controlled by user and jobs lifecycle is primarily controlled by service. Jobs are designed to handle a variety of tasks and work in turns and applicable in conditions of limited resources (e.g. when only one lambda can be invoked at a time due to constraints, but solution required data processing by multiple lambdas).
There are several basic requirements for the luna-lambda work (lambdas detailed description/ jobs and workflows detailed description):
kubernetes cluster with compatible version of the Product with availability for entities (deployment/services/etc) creation
s3-like storage bucket with reading and writing permissions for lambdas storage
docker registry for lambdas images storage
The detailed description of luna-lambda requirements, usage and support is available here.
There is also available quick start guide with minimalistic example of lambda creation and usage.