Cloudflareは、PythonアプリケーションをCloudflare Workers環境内で実行する方法として提供を開始してから2年を経て、Python Workersの一般提供(GA)を発表した。今回の措置により、PythonはCloudflare Developer Platformで正式にサポートされる言語となり、既知のライブラリやフレームワークを利用しながら、JavaScriptによる接続層を記述することなくCloudflareのサービスと連携できるようになった。
新しい環境では、FastAPI、Django、Flaskに加え、WSGIまたはASGIと互換性のあるその他のフレームワークを実行できる。Cloudflareはworkers.asgiやworkers.wsgiなどのコネクターを提供し、WorkersへのリクエストをPythonアプリケーションが想定する構造へ変換する。一方、Workersプラットフォームはリクエストの受信、スケーリング、負荷分散を処理する。
Cloudflareサービスとの直接統合
実用面での主な変更の一つは、PythonからCloudflareのバインディングを直接サポートすることだ。以前は、QueuesなどのサービスへPythonオブジェクトを渡す際、PyodideとJavaScript APIを使って手動でJavaScriptオブジェクトへ変換する必要があった。現在は、Workers環境とPythonパッケージが型の変換を処理するため、通常のPython構文で呼び出しを利用できる。
これにはWorkers AI、R2、D1、Hyperdrive、Durable Objects、Queues、Workflowsが含まれる。またCloudflareでは、Dynamic Workersを使って、あるWorker内にPython Workerを作成することも可能になっている。
データベースとネットワーク接続
PythonアプリケーションはHyperdriveを利用して、PostgreSQLおよびMySQLデータベースに接続できるようになった。TCPソケットのサポートがなかったことは、WebAssembly内でデータベースドライバーを実行する際の障害となっていた。これらのドライバーは通常、ネットワーク向けのPOSIXシステムコールに依存しているためだ。Cloudflareによると、同社はWorkers connect APIを使ってソケット呼び出しを実装することでこの問題に対処し、aiomysqlやasyncpgなどのドライバーが基盤環境の詳細を把握するための変更なしに動作するようにした。
AI開発者にとって何が変わるのか
現在は、openai、langchain、mcpなどのライブラリをPython Workers内で実行できる。またCloudflareは、requestsやhttpxなどのHTTPクライアントがWebAssembly環境でJavaScriptのfetchを介してリクエストを送信できるようにした。開発者はこれらのライブラリをWorkers AIと組み合わせ、Cloudflareネットワーク内のGPUユニット上で推論を実行したり、Cloudflare AI Gatewayを介してリクエストを転送したりできる。
同社は、Queues、Workflows、Workers AI、R2を使ったAIタスクのオーケストレーション、Bluesky JetstreamとDurable Objectsによるリアルタイムイベントストリームの処理、さらにVectorizeを利用したMCPサーバーやRAGシステムを含むアプリケーションの例を紹介している。
制限と未解決の課題
Python Workersは、Pyodideを使ってWebAssemblyにコンパイルされたPythonインタープリターに依存している。そのため、C、C++、Rustで記述されたネイティブ拡張を含むパッケージには、WebAssemblyプラットフォーム向けのカスタムビルドが必要となる。Cloudflareは、提案PEP 783に関連するPyEmscripten標準と更新されたビルドツールがパッケージエコシステムの拡大に役立つとしているが、同社は、この標準の採用がなお進行中であり、一部のパッケージはまだサポートされていない可能性があることを認めている。
certi.newsの見解:この変更は単に新しいプログラミング形式を追加することにとどまらず、エッジに分散されたPythonサービスを構築する際のJavaScriptへの依存を減らすものだ。Pythonのアプリケーションやライブラリを保有し、それらをCloudflareのサービスに接続したい開発チームにとって重要だが、既存のアプリケーションを本番環境へ移行する前に、パッケージの互換性とWebAssemblyの制約を確認する必要がなくなるわけではない。また、性能、メモリ効率、対応パッケージ数を改善するというCloudflareの将来の約束は、一般提供が重要な成熟点を示すものであり、プラットフォームに関する作業の終わりではないことを明確にしている。