用途:Fastly Fiddle(https://fiddle.fastly.dev)是在真实 Fastly 边缘节点上编译并运行 VCL 的网页沙箱,使用生产 VCL 编译器与真实 POP,因此可测试本地工具无法模拟的边缘特性,如 client.geo.*、WAF、ESI、集群、shielding、限流、真实 TLS 与缓存行为。也可用于 CI 中针对真实边缘节点测试 VCL,以及生成可分享的 bug 复现链接。
主要能力:通过 HTTP API 创建/更新 fiddle,上传 VCL、origins、请求头、请求体与测试;支持仅 lint 的编译检查(POST /fiddle 读取 valid,约 1-3 秒,无需执行);完整流程为发布→执行→SSE 流式获取断言结果。测试表达式支持 clientFetch.、events.、originFetches.*。
使用方式:需要 Bash、curl 7.76+、jq 及网络访问。设置 FIDDLE_SKILL_DIR 指向含 SKILL.md 的绝对目录。仅编译检查:bash "$FIDDLE_SKILL_DIR/scripts/run-fiddle.sh" --lint-only fiddle.json。完整执行:bash "$FIDDLE_SKILL_DIR/scripts/run-fiddle.sh" examples/robots.json,可用 --id <fiddle-id> 复用已发布 fiddle 重新执行。原始 API 流程为 POST /fiddle 创建、POST /fiddle/<id>/execute 获取 sessionID、再订阅 /results/<sessionID>/stream。
适用场景:需要真实 Fastly 行为或可分享链接时使用 Fiddle;快速本地迭代(<1s)、watch 模式、离线测试应使用 falco;Fastly Compute/Wasm 测试应使用 viceroy 或 fastlike;生产部署使用 fastly-cli。
限制:发布到 Fiddle 的内容会公开上传,不要包含凭据或私有数据;无需认证但无文档配额,应避免高频请求并发送描述性 User-Agent。每次发布有约 10-20 秒边缘同步等待,冷发布常达 60-120 秒,不适合 TDD。每次 POST 都会生成新 fiddle ID,PUT 保持 URL 稳定但仍需重新同步;重复执行同一 ID 约 2 秒。SSE session ID 短暂,需立即订阅。API 未公开文档,字段与行为可能变化。测试 DSL 语法特殊,事件对象仅暴露 url/method/return/status/ttl。