mcpField
C
cloudflare

cloudflare

github.com/oakossクラウド・DevOps2090 回インストール11 週間前に更新
リポジトリ

cloudflare について

Cloudflare Workers の開発と運用に役立つリファレンススキルです。エッジ処理の設計やプラットフォーム API、バインディング、Wrangler の使い方に加え、制限事項やよくあるミスも説明します。

主な機能

  1. 01Worker イベントハンドラーのパターン
  2. 02KV、D1、R2、Durable Objects
  3. 03Pages と静的アセットのデプロイ
  4. 04Wrangler による開発とデプロイ
  5. 05設定とシークレットの管理

活用シーン

  1. 01エッジ優先の API の設計
  2. 02Worker データの保存先選び
  3. 03スケジュールまたはキューハンドラーの設定
  4. 04よくあるデプロイミスの調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oakoss/agent-skills --skill cloudflare

インストール後、Claude Code で/cloudflareを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
pages.md
storage.md
workers.md
wrangler.md

詳細

Cloudflare

概要

Cloudflare Workers は、Cloudflare のグローバルネットワーク上で JavaScript、TypeScript、WebAssembly を実行するサーバーレスのエッジコンピューティングプラットフォームです。Workers は fetch、scheduled、queue イベントハンドラーを使用する ES モジュール形式で動作し、環境バインディングを通じてプラットフォームサービス(KV、D1、R2、Durable Objects)にアクセスします。

使用する場面: エッジファーストの API、低レイテンシのグローバルアプリ、サーバーレス関数、Pages を使った静的サイトのホスティング、キーバリューキャッシュ、エッジでのリレーショナルデータ、エグレス料金のかからないオブジェクトストレージ。

使用しない場面: CPU 時間制限を超える長時間実行のコンピューティング、永続的な TCP 接続が必要なワークロード、Node.js API との完全な互換性を必要とするアプリケーション、コンテナのほうが適している大規模なモノリシックアプリケーション。

クイックリファレンス

パターンAPI / 設定主なポイント
Fetch ハンドラーexport default { fetch(request, env, ctx) }HTTP リクエストのエントリーポイント
Scheduled ハンドラーexport default { scheduled(controller, env, ctx) }設定の [triggers] による Cron トリガー
環境変数env.VAR_NAMEwrangler.toml またはダッシュボードで設定
KV の読み取り/書き込みenv.KV.get(key) / env.KV.put(key, value)結果整合性、値の最大サイズは 25 MiB
D1 クエリenv.DB.prepare(sql).bind(...params).all()エッジ上の SQLite、プリペアドステートメント
D1 バッチenv.DB.batch([stmt1, stmt2])アトミックなトランザクション、単一のラウンドトリップ
R2 アップロードenv.BUCKET.put(key, body)S3 互換、エグレス料金なし
R2 ダウンロードenv.BUCKET.get(key)ReadableStream を含む R2ObjectBody を返します
Durable Objectsenv.DO.get(id) の後に stub.fetch(request)単一インスタンスによるステートフルな調整
DO ストレージthis.ctx.storage.sql.exec(query)新しい DO では SQLite バックエンドを推奨
Pages のデプロイwrangler pages deploy <dir>静的コンテンツと Functions、自動生成されるルート
Worker のデプロイwrangler deploy設定に wrangler.toml を読み込みます
開発サーバーwrangler devバインディングを使ったローカル開発
シークレットwrangler secret put SECRET_NAME暗号化され、wrangler.toml には保存されません
静的アセットassets: { directory: "./dist" }デフォルトでは Worker を呼び出さずに配信されます
Workflowsexport class MyWorkflow extends WorkflowEntrypoint永続的なマルチステップ実行エンジン
Hyperdriveenv.HYPERDRIVE.connectionString外部 PostgreSQL のコネクションプーリング
Queues による送信env.QUEUE.send(message)Workers 間の非同期メッセージパッシング
設定形式wrangler.jsonc(新規プロジェクトで推奨)コメント付き JSON。TOML より推奨

よくある間違い

間違い正しいパターン
バインディングにグローバル変数としてアクセスするモジュール形式では env パラメーターを介してアクセスする
シークレットを wrangler.toml に保存する暗号化された値には wrangler secret put を使用する
強い一貫性が必要な用途に KV を使用する一貫性のある読み取りには D1 または Durable Objects を使用する
D1 クエリでパラメーターをバインドしないSQL インジェクションを防ぐため、必ず .prepare().bind() を使用する
KV の値のサイズ上限(25 MiB)を超える25 MiB を超えるオブジェクトには R2 を使用する
ストレージ操作で await を忘れるKV、D1、R2 のメソッドはすべて非同期です
signal を渡さずに fetch() を使用する自動キャンセルのために request.signal を渡す
Worker コード内で D1 データベースを作成するwrangler d1 create で作成し、設定でバインドする
設定に compatibility_date がない破壊的変更を避けるため、必ず設定する
fetch ハンドラーから Response 以外を返すResponse オブジェクトを返す必要があります
新しいプロジェクトで wrangler.toml を使用する新しいプロジェクトでは wrangler.jsonc を使用する。IDE のサポートが優れています
リレーショナルクエリに KV を使用するSQL クエリには D1 を使用する。KV はキーと値のみを扱います

委任

  • アーキテクチャレビュー:Task エージェントを使用して、エッジとオリジンのパターンを評価します
  • コードレビュー:code-reviewer エージェントに委任します
  • ストレージの選定:Explore エージェントを使用して、KV、D1、R2、DO を比較します

参考資料

コメント