edge-computing について
ユーザーに近い場所で処理を実行する開発者向けの、エッジコンピューティングのスキル資料です。複数のエッジプラットフォームに加え、地域別ルーティング、キャッシュ、状態を持つ接続のパターンを扱います。
主な機能
- 01Cloudflare Workers、Deno Deployなどの資料
- 02地域に応じたリクエストルーティング
- 03KVによるレスポンスのキャッシュ
- 04A/Bテストとボット検出のパターン
- 05Durable Objectsによる状態管理接続
- 06エッジ実行環境の制約の説明
活用シーン
- 01リクエストの国に応じたAPIの選択
- 02オリジン応答をキャッシュして再取得を削減
- 03ユーザーへのA/Bテストの割り当て
- 04WebSocketを使ったチャットセッションの構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill edge-computingインストール後、Claude Code で/edge-computingを入力して読み込まれたか確認します。
詳細
エッジコンピューティング — Cloudflare Workers、Deno Deploy
ユーザーに近い場所で実行する、低レイテンシーのグローバルコンピューティングです。
プラットフォーム
Cloudflare Workers — V8、300+ POP、KV/Durable
Deno Deploy — Deno、30+ POP、TypeScript
Vercel Edge — V8、20+ POP、Next.js
Fastly Compute@Edge — WASM、70+ POP
ジオルーティング
export default {
async fetch(req) {
const api = req.cf.country === 'US' ? 'us-api' : 'eu-api';
return fetch(`https://${api}.example.com${req.url}`);
}
};
エッジキャッシュ(KV)
const key = new URL(req.url).pathname;
let cached = await env.KV.get(key);
if (cached) return new Response(cached, { headers: { 'X-Cache': 'HIT' } });
const resp = await fetch('https://origin.com' + key);
const body = await resp.text();
await env.KV.put(key, body, { expirationTtl: 3600 });
return new Response(body, { headers: { 'X-Cache': 'MISS' } });
A/B テスト
const variant = Math.random() < 0.5 ? 'A' : 'B';
resp.cookies.set('ab_test', variant);
ボット検出
if (/bot|crawler/i.test(req.headers.get('User-Agent'))) {
return new Response('Forbidden', { status: 403 });
}
Durable Objects(ステートフル)
export class ChatRoom {
async fetch(req) {
const [client, server] = Object.values(new WebSocketPair());
this.sessions.push(server); server.accept();
server.on('message', e => this.broadcast(e.data));
return new Response(null, { status: 101, webSocket: client });
}
}
制約
CPU 10-50ms → 重い処理はオフロード
メモリ 128MB → ストリーミング
ファイルシステムなし → KV/R2
@.claude/skills/wasm/SKILL.md を参照
コメント
Markdown 対応