FaaS Overview
  • 16 Jun 2023
  • Dark
    Light
  • PDF

FaaS Overview

  • Dark
    Light
  • PDF

Article summary

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

Package
img

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.


Service
img

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.


Trigger
img

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.



UI Slot
img

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.

Utilizing Cache

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:

  1. Box to Segmentation - This function receives a box detection annotation and an item and returns a segmentation of the detected object.
  2. 4-Points - Receives a 4-point Polygon that represents object edges and returns object segmentation.
  3. 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

What's Next