cloudflare_workers
Cloudflare Workers
cloudflareのエッジサーバでJSアプリケーションを実行できる。
- Node.JSアプリケーションではない
- 開発にNode.JSを使用するが、実行環境はNode.JSではない
- よってnpmライブラリは使えない(Node.JS非依存ならば使えるかも)
- Node.JS互換のAPIがいくつか実装されている
- Web API
- fetchなど一部のブラウザJSのAPIが利用できる
- Cloudflare API - KV(キーバリューストア)、R2(オブジェクトストレージ)などを利用できる
- 様々なトリガー
- fetchトリガー(webリクエストで起動)、cronなど
- cronはAWSやGCPよりかなりシンプルで楽
- 制限
- 1回のCPU利用時間が10ms(io waitの時間は含まれない)に制限されている
Scheduled Workerの作成
前提
- cloudflareアカウントを作成
- Node.JSがインストール済み
プロジェクト作成
npm create cloudflare@latest
最初にプロジェクトを作る場所を聞かれる。今のディレクトリに作るなら ./
、ディレクトリを掘って作成するなら名前を入力。これがプロジェクト名になる
What type of application do you want to create?
と聞かれたら Scheduled Worker (Cron Trigger)
を選択、残り(typescriptを使うか?gitを使うか?)は好みで設定する
ローカル実行
npx wrangler dev --test-scheduled
サーバが起動するが、cron実行はされない、以下のURLを叩くとcronが実行される
curl "http://localhost:8787/__scheduled?cron=*+*+*+*+*"
※ 現在のバージョン(wrangler 3.22.1)では終了してもサーバが落ちずに残ってしまう。lsof -i:8787
コマンドでプロセス番号を探してkillする
デプロイ
npm run deploy
初回はcloudflareへのOAuth認証が行われるので、アカウントとパスワードを入力する
cloudflare_workers.txt · 最終更新: 2023/12/25 15:44 by nullpon