Pages Cloud Functions に Python・Go ランタイムを追加

Pages Cloud Functions に Python と Go の 2 つのランタイムが加わりました。同じプロジェクト内でこれらの言語を使ってバックエンド API を作成し、フロントエンドページと一緒にリポジトリへプッシュするだけで、自動的にビルド・デプロイされます。
今回のアップデートにより、 cloud-functions ディレクトリ内の .py および .go ファイルが認識されるようになりました。プラットフォームが対応するランタイムを自動的にマッチングし、ファイルパスがそのまま API パスになります。
Python ランタイム
Cloud Functions の Python ランタイムには 2 つのモードがあります:
- Handler モード:標準ライブラリのみを使用し、サードパーティ依存は不要です。1 ファイルが 1 つの API エンドポイントに対応し、シンプルで分かりやすい書き方です。
- Framework モード:WSGI(同期型、Flask・Django など)と ASGI(非同期型、FastAPI・Sanic など)の両方の主要フレームワークをネイティブにサポートします。プラットフォームがフレームワークの種類を自動検出するため、追加の設定は不要です。
依存関係の管理については、ビルド時にサードパーティライブラリが自動検出されます。requirements.txt で手動指定することも可能です。実行環境は Python 3.10 です。
Go ランタイム
Go ランタイムにも Handler モードと Framework モードがあります:
- Handler モード:標準ライブラリのみで記述し、フレームワーク依存はありません。ファイル名がルーティングパスを決定します。
- Framework モード:Gin、Echo、Fiber、Chi などの主要フレームワークに対応し、プラットフォームがポートの適応やパスマッピングを自動で処理します。
Go のビルドプロセスは完全に自動化されており、フレームワークの検出、ルーティングマッピング、クロスコンパイルのいずれも手動設定は不要です。実行環境は Go 1.26 です。
使い方
ローカル開発では、EdgeOne CLI を最新バージョンに更新し、プロジェクトディレクトリで edgeone pages dev を実行してください。フロントエンドと Cloud Functions のサービスが同一ポートで同時に起動し、CORS の問題に対処する必要がなくなります。
ローカルでの検証が完了したら、コードをリポジトリにプッシュするだけで、プラットフォームが自動的にビルドとデプロイを行います。
詳細ドキュメント:
ご質問・フィードバックは Discord コミュニティ までお気軽にどうぞ。