Remix + Cloudflare Workers + D1 + KV + Queue + R2で簡単なアプリを作る
Zennに清書した
code:sh
npx create-remix@latest
code:.gitignore
.DS_Store
node_modules
/.cache
.dev.vars
/public/build
/build
.vscode
.wrangler
Cron Triggerを追加する
アプリ的には使う場所がないけどCron Triggerも試しておきたいので追加。構造としてはQueueと同じ。ハンドラをapp/に作ってserver.tsに追加するだけ。cronのパターンはwrangler.tomlに追加すればOK。
code:server.ts
import { scheduled } from "~/cron/scheduled";
...
queue,
scheduled, <- 追加
}
code:wrangler.toml
以下でテスト実行できる。
code:sh
npm run dev
本番環境で動かす
wrangler.tomlに必要情報を記載し、account_idも記載できたらあとはnpm run deployをするだけ。Pagesと違いWorkersは手動でD1やKVのネームスペースを設定しなくて良い。ただし秘匿情報の環境変数はマニュアルで設定しないといけない(見えてもいいやつならwrangler.tomlに[vars]と書いておけば設定される)。
デバッグ
下記のコマンドでFunctionsへのリクエストのログが見られる。
code:sh
npx wrangler tail remix-workers-bookmark
特に問題なく動いた。
CI
問題
DrizzleORM or Kitが生成するmigrationファイルにIF NOT EXISTSをつけてくれないからCIにmigrations applyを含めると二回目でこける。
リンク