ITEEK株式会社のロゴ

ITEEK

ブログ

Blogs

Cloudflare Workersをpythonで使える?(PyCon JP 2024)

2025-03-17

Cloudflare Workersをpythonで使える?(PyCon JP 2024)

Cloudflare Workersとは

Cloudflare Workersは、世界中のエッジ環境にコードをデプロイできるサーバーレスプラットフォームとして知られています。

従来はJavaScriptやWebAssembly (WASM) をサポートしていましたが、最近になってPythonも使えるようになりました。

この新機能により、Pythonデベロッパーにとって魅力的な選択肢が増えました。


Cloudflare Workersの特徴

Cloudflare Workersの主な特徴は、ユーザーに近いサーバーからレスポンスを返せることと、コールドスタートが排除されていることです。

これにより、高速なレスポンスが期待できます。また、無料枠があることも大きな魅力です。


PythonでのCloudflare Workers開発

Pythonを使ってCloudflare Workersアプリケーションを開発するには、Node.jsとnpxが必要です。

開発やデプロイには「Wrangler」というツールを使用します。基本的な構成ファイルは以下の通りです。

  • src/entry.py:アプリケーションのソースコード
  • wrangler.toml:プロジェクトの設定ファイル

PythonコードからJavaScript APIを呼び出すには、Cloudflare Workers独自の「jsモジュール」を使用します。

これにより、ResponseやfetchなどのJavaScript機能をPythonから利用できます。


環境変数とデータベース

環境変数はwrangler.tomlや.dev.varsファイルで定義でき、コード内ではenv引数を通じてアクセスできます。

また、Cloudflare D1というSQLiteベースのサーバーレスデータベースを利用することも可能です。


Built-in packagesとmicropip

Cloudflare WorkersはBuilt-in packagesというPythonパッケージを提供しており、requirements.txtに記述することで利用できます。

ただし、使用できるパッケージは限られています。

その他のパッケージを使用したい場合は、micropipを使ってインストールできますが、制限があります。


仕組みと制限

Cloudflare WorkersでPythonが動作する仕組みは、PyodideというCPythonのWASM実装を利用しています。

これにより、JavaScriptやWASMをサポートする環境でPythonコードを実行できるようになりました。

ただし、この方式には技術的な制限があり、一部の標準パッケージやサードパーティパッケージの使用に制限があります。


Cloudflare WorkersでのPythonサポートは、まだ発展途上の段階にあります。現時点では本番環境へのデプロイに制限があるなど、課題も残されています。

しかし、この新機能によってPythonデベロッパーがサーバーレスアプリケーションを簡単に開発・デプロイできる可能性が広がったことは間違いありません。

今後の進化に期待が高まります。

お問い合わせ

Contact

案件のご相談やお見積りなど、お気軽にご連絡ください。