ユーザ用ツール

サイト用ツール


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