はじめに
Pythonを普段使っていないのですが、さっと使いたいライブラリがあったので、デプロイ先を探していました。
VercelがNext.jsのデプロイに使っていることもあり、手軽で良さそうだったので使ってみます。
インフラ周りはほぼCloudflareで揃えているのですが、Beta版でほぼ標準ライブラリのみという制限があったので、今回は保留しました。
Beta版が外れたらこちらも触ってみたいです。
手順
下記のような簡単なサンプルを用意しました。
処理を行うpythonファイルを用意し、vercel.jsonでbuids/routesを定義します。
その後Githubへリポジトリを作成しPushします。
project/
├── api/
│ └── hello.py
└── vercel.json
hello.py
from http.server import BaseHTTPRequestHandler
class handler(BaseHTTPRequestHandler):
def do_GET(self):
# レスポンスの設定
self.send_response(200)
self.send_header('Content-type', 'text/plain')
self.end_headers()
# レスポンス本文
self.wfile.write(b"Hello, World!")
vercel.json
{
"version": 2,
"builds": [
{ "src": "api/*.py", "use": "@vercel/python" }
],
"routes": [
{ "src": "/.*", "dest": "api/hello.py" }
]
}
Vercelのダッシュボードへ移動し、作成したRepositoryをImportします。
Next.jsなどとは違ってFrameworkなどはないので、OtherのままDeployします。
Deployが完了後、表示されるUrlにapi/helloを追加することで、実装した画面が表示されるはずです。
1リポジトリを用意するだけで、簡単にpythonのAPIをネットに公開することができるので、ぜひ皆さんも試してみたください。