1
/
5

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

Cloudflare Workers in Pythonでサーバーレスアプリケーションを作ろう

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デベロッパーがサーバーレスアプリケーションを簡単に開発・デプロイできる可能性が広がったことは間違いありません。今後の進化に期待が高まります。

If this story triggered your interest, why don't you come and visit us?
業績好調のため増員募集|経験豊富な代表直下で成長できるIT法人営業
ITEEK株式会社's job postings
2 Likes
2 Likes

Weekly ranking

Show other rankings
Like 上川 諒也's Story
Let 上川 諒也's company know you're interested in their content