Skip to content

[agents] Cloudflare Rate Limiting bindingを適用する - #116

Draft
Ojoxux wants to merge 4 commits into
stagingfrom
fix/apply-api-rate-limit
Draft

[agents] Cloudflare Rate Limiting bindingを適用する#116
Ojoxux wants to merge 4 commits into
stagingfrom
fix/apply-api-rate-limit

Conversation

@Ojoxux

@Ojoxux Ojoxux commented Aug 13, 2026

Copy link
Copy Markdown
Owner

概要

一般API用として定義されていたものの未適用だったレート制限を、/api/books/api/tags/api/users に適用します。

あわせて、KVをカウンタとして使う実装をCloudflare WorkersのRate Limiting bindingへ移行し、リクエストごとのKV read/writeをなくしました。

やったこと / やってないこと

  • 一般APIに60リクエスト/分の制限を適用
  • 検索APIは30リクエスト/分を維持し、認証済みユーザーID単位で制限
  • 認証APIはRate Limiting bindingが10秒または60秒の期間のみ対応するため、100リクエスト/15分から10リクエスト/分へ変更
  • 通常はセッションID、未認証時はIPアドレスをキーに使用
  • production・staging・testへ独立したRate Limiting bindingを追加
  • /api/health は監視用途のため一般API制限の対象外
  • 429は既存の構造化エラーログ経由でWorkers Logsから観測可能
  • bindingはCloudflareロケーション単位かつ許容的・結果整合的なため、厳密なグローバル課金カウンタ用途には使用しない
  • Analytics Engineによるレート制限専用ダッシュボードは今回の対象外

動作確認

  • pnpm test(253 passed / 1 skipped)
  • pnpm typecheck
  • pnpm lint(終了コード0、既存警告のみ)
  • pnpm format:check
  • pnpm build
  • wrangler deploy --dry-run --config wrangler.jsonc
  • wrangler deploy --dry-run --config wrangler.staging.jsonc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant