cloudflare_workers
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
cloudflare_workers [2023/12/25 03:54] – 作成 nullpon | cloudflare_workers [2023/12/25 15:44] (現在) – nullpon | ||
---|---|---|---|
行 4: | 行 4: | ||
cloudflareのエッジサーバでJSアプリケーションを実行できる。 | 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の時間は含まれない)に制限されている | ||
- | ## 注意点など | ||
- | Node.JSではない | + | ## Scheduled Workerの作成 |
- | - 開発環境はNode.JS上に作成するが実行環境はNode.JSではない。よってnpmライブラリは使えない | + | ### 前提 |
- | web api | + | - cloudflareアカウントを作成 |
+ | - Node.JSがインストール済み | ||
- | - workersという名前だけあって、web workersのAPIが使える | + | ### プロジェクト作成 |
- | - 例えば、httpリクエストはfetch APIを使う | + | |
- | CloudflareのAPIが使える | + | ``` |
+ | npm create cloudflare@latest | ||
+ | ``` | ||
- | - キーバリューストアへのアクセスなど | + | 最初にプロジェクトを作る場所を聞かれる。今のディレクトリに作るなら `./ |
- | 様々なトリガー | + | ``` |
+ | What type of application do you want to create? | ||
+ | ``` | ||
- | - webリクエスト以外にもcronなどのトリガーがある。 | + | と聞かれたら `Scheduled Worker (Cron Trigger)`を選択、残り(typescriptを使うか?gitを使うか?)は好みで設定する |
- | - 定期実行はAWSやGCPよりかなりシンプルで楽 | + | |
- | 制限 | + | ### ローカル実行 |
- | - CPU利用時間などの制限がある。基本的には軽い処理を実行するものと考える | + | ``` |
+ | npx wrangler dev --test-scheduled | ||
+ | ``` | ||
+ | |||
+ | サーバが起動するが、cron実行はされない、以下のURLを叩くとcronが実行される | ||
+ | |||
+ | ``` | ||
+ | curl " | ||
+ | ``` | ||
+ | |||
+ | ※ 現在のバージョン(wrangler 3.22.1)では終了してもサーバが落ちずに残ってしまう。`lsof -i: | ||
+ | |||
+ | ### デプロイ | ||
+ | |||
+ | ``` | ||
+ | npm run deploy | ||
+ | ``` | ||
+ | |||
+ | 初回はcloudflareへのOAuth認証が行われるので、アカウントとパスワードを入力する | ||
</ | </ |
cloudflare_workers.1703476452.txt.gz · 最終更新: 2023/12/25 03:54 by nullpon