跳转到主要内容

Python Workflows SDK

import { WranglerConfig } from "~/components";

Workflow entrypoints can be declared using Python. To achieve this, you can export a WorkflowEntrypoint that runs on the Cloudflare Workers platform. Refer to Python Workers for more information about Python on the Workers runtime.

Get Started

The main entrypoint for a Python workflow is the WorkflowEntrypoint class. Your workflow logic should exist inside the run handler.

from workers import WorkflowEntrypoint

class MyWorkflow(WorkflowEntrypoint):
    async def run(self, event, step):
        # steps here

For example, a Workflow may be defined as:

from workers import Response, WorkflowEntrypoint, WorkerEntrypoint

class PythonWorkflowStarter(WorkflowEntrypoint):
    async def run(self, event, step):

        @step.do('step1')
        async def step_1():
            # does stuff
            print('executing step1')

        @step.do('step2')
        async def step_2():
            # does stuff
            print('executing step2')

        await step_1()
        await step_2()

class Default(WorkerEntrypoint):
    async def fetch(self, request):
        await self.env.MY_WORKFLOW.create()
        return Response("Hello world!")

You must add both python_workflows and python_workers compatibility flags to your Wrangler configuration file.

```jsonc { "$schema": "./node_modules/wrangler/config-schema.json", "name": "hello-python", "main": "src/entry.py", "compatibility_flags": [ "python_workers", "python_workflows" ], "compatibility_date": "$today", "workflows": [ { "name": "workflows-demo", "binding": "MY_WORKFLOW", "class_name": "PythonWorkflowStarter" } ] } ```

To run a Python Workflow locally, use Wrangler, the CLI for Cloudflare Workers:

npx wrangler@latest dev

To deploy a Python Workflow to Cloudflare, run wrangler deploy:

npx wrangler@latest deploy

Join the #python-workers channel in the Cloudflare Developers Discord and let us know what you would like to see next.