- 16 Jun 2023
- Print
- DarkLight
- PDF
FaaS Overview
- Updated On 16 Jun 2023
- Print
- DarkLight
- PDF
Function As A Service (FaaS) enables users to deploy packages and run services from them, with access to computing resources and data from the Dataloop system. It is a flexible platform that provides outstanding capabilities and allows users to achieve their needs and requirements while automating many processes.
Functions run in the FaaS framework often make extensive use of Dataloop Python SDK, to interact with the platform. For detailed SDK guides, read here.
FaaS Features
Upload codebase files
- Connect codebase from GIT
- Codebase version update
Deploy Docker file
Connect to the Docker registry
Deploy package as a service
Invoke a single Dataloop entity or a list of entities to functions (items, annotations, datasets, recipes, etc.).
Analyze service performance (service analytics)
Debug services using VS-Code console
Configure compute used by the service
- Concurrency
- Autoscalers
- Instance type (selected from catalogue)
How Does it Work
A Package is installed by uploading files or connecting the codebase from Git.
- Packages should have a well-defined class structure.
- Classes contain different functions.
- Modules translate and define classes.
A Service is a package deployed using defined compute resources.
- Init method - Runs on service initialization.
- Execution- Functions invocation on items or other entities is considered an Execution.
The trigger is a service configuration for the automatic invocation of items (or other entities) to functions based on schedule or event criteria.
- CRON Trigger - Schedule-based trigger. For example, every 1 hour, 1 day, etc.
- Event Trigger - Criteria-based invocation.For example, when the item is created, updated, deleted, etc.
Predetermined locations/buttons in the Platform. Assigning a function to one or more specific 'UI Slot' allows users to invoke entities in scope/context (items, annotations, datasets) to the selected function. For example - assigning YOLOv5 to the Annotation studio will allow running the model on the item and generate annotations.
Enabling cache in your projects allows services to use cached services, increasing performances while reducing API calls. To activate the cache, contact Dataloop.
Prerequisites
* Working with Dataloop SDK requires having Python installed with the Dtlpy package. Read these instructions for more information.
* Using FaaS requires being a member of an Organization. To become a member of an organization, ask a manager to add you.
IP Address Whitelisting
Hosting FaaS on a remote server or having a FaaS sending data/events to one may require whitelisting the IP address used by the Dataloop system. The following list details the respective IP addresses, additional IPs may be added from time to time:
- 34.76.183.75
- 104.199.5.216
- 35.241.168.191
- 35.240.12.251
- 34.78.187.121
- 34.78.238.94
- 34.78.5.89
GIT Reference & Examples
For FaaS-related developer tutorials and examples, refer to Dataloop GIT tutorials.
Annotation Automation
Examples of functions that perform automation on items and annotations.
There are 3 functions in this package:
- Box to Segmentation - This function receives a box detection annotation and an item and returns a segmentation of the detected object.
- 4-Points - Receives a 4-point Polygon that represents object edges and returns object segmentation.
- Auto Annotation - Receives and auto annotates an item using Maskrcnn.
git clone https://github.com/dataloop-ai/annotation-automation.git
Image Exif
Example of a function that extracts image Exif information and uploads it to item's metadata.
git clone https://github.com/dataloop-ai/image-exif.git
Video Tracker
Example of functions that track bounding-box annotations:
git clone https://github.com/dataloop-ai/video-tracker.git