Tasks
A task is a Python function that runs remotely in a container. Tasks are the unit of work in Flyte: they are versioned, cached, retried, and recorded, so a run you start today can be reproduced and inspected later.
Every task belongs to a TaskEnvironment, which declares the container image, the resources, and the secrets the task needs. You define the environment once and reuse it across the tasks that share it.
env = flyte.TaskEnvironment(name="etl", image=flyte.Image.from_debian_base())
@env.task
def extract(url: str) -> str:
...Tasks compose. Calling one task from another builds the graph as your code executes, so fanout, branching, and error handling are ordinary Python rather than a separate DSL.
The three sections below follow the order you meet them in: describe the environment a task runs in, write the task logic, then get it onto a cluster.
TaskEnvironments for container images, resources, secrets, caching, retries, and more; use triggers for schedules.
Build tasks
Compose tasks with fanout, parallelism, error handling, traces, files, and DataFrames.
Run and deploy tasks
Use flyte run for iteration or flyte deploy to register a stable task version.
Related
Tasks are also the substrate for the other two building blocks. An app serves a task’s results over HTTP; an agent drives tasks in a loop.