mcpField
C
cloudflare-deploy

cloudflare-deploy

github.com/mizchi云与 DevOps41664 次安装2 周前更新
代码仓库

关于 cloudflare-deploy

cloudflare-deploy 是使用 cf 命令行配置和部署 Cloudflare 服务的技能,帮助开发者选择产品、查找命令、处理身份验证并遵循当前配置指引。

主要功能

  1. 01按决策树选择产品
  2. 02查找 cf 命令与 Schema
  3. 03部署前检查身份验证
  4. 04Worker 配置与部署指南
  5. 05Cloudflare 产品参考资料

适用场景

  1. 01选择 Cloudflare 计算或存储服务
  2. 02创建带 KV 和密钥的 Worker
  3. 03迁移现有 Wrangler 项目
  4. 04准备身份验证与 CI 部署

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mizchi/skills --skill cloudflare-deploy

安装后在 Claude Code 中输入/cloudflare-deploy确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.txt
README.md
agents/
openai.yaml
assets/
cloudflare-small.svg
references/agents-sdk/
api.md
configuration.md
gotchas.md
patterns.md
README.md
references/ai-gateway/
configuration.md
dynamic-routing.md
features.md
README.md
sdk-integration.md
troubleshooting.md
references/ai-search/
api.md
configuration.md
gotchas.md
patterns.md
README.md
references/analytics-engine/
api.md
configuration.md
gotchas.md
patterns.md
README.md
references/api-shield/
api.md
configuration.md
gotchas.md
patterns.md
README.md

详细介绍

Cloudflare 部署

使用 cf 执行 Cloudflare 操作。使用下方的决策树选择产品,然后阅读其运行时/API 参考和最新的 cf CLI 指南。

前置条件

  • 需要 Node.js 24+ 和 pnpm。安装 npm 包 cf,而不是 @cloudflare/cf。
  • 将 cf 保留在项目的 devDependencies 中,并提交锁文件。已验证的示例使用 [email protected] 和 @cloudflare/vite-plugin@beta;升级时请重新检查帮助信息和类型。
  • Workers 使用 cloudflare.config.ts。对于现有的 Wrangler 项目,先运行 cf migrate --dry-run,再运行 cf migrate,并在执行项目命令前处理后续事项。自动配置不会导入旧的绑定。

身份验证(部署前必需)

发布或修改账户资源前,请先验证身份验证状态:

pnpm exec cf auth whoami

请参阅身份验证。在本地使用 pnpm exec cf auth login;cf 使用自己的登录凭据。在 CI 中设置 CLOUDFLARE_API_TOKEN 和 CLOUDFLARE_ACCOUNT_ID。部署试运行不需要凭据。

运行命令前先查找命令

pnpm exec cf cli search "create a D1 database"
pnpm exec cf schema d1 create
pnpm exec cf d1 create --help

搜索查询中只描述操作和资源类型。将名称和 ID 传给查找到的命令,而不是传给搜索。API 命令会将 JSON 输出到 stdout,将进度信息输出到 stderr。资源命令通常使用 ID 和远程数据;请检查是否支持 --local,不要照搬 Wrangler 的 --remote、--env、--json 或 --yes 标志。

何时阅读 references/

当前的 CLI、迁移、配置和构建指南位于 references/cf/。产品参考资料保留了 SDK 和运行时相关知识;标记为 legacy 的文件仅保留旧版 CLI/配置示例,供迁移时参考。不要执行其中的 Wrangler 示例,也不要据此生成新的 Wrangler 配置。请使用 cf 搜索/schema 和类型化绑定来实现预期操作。

经验法则:

  • 选择产品?使用下方的决策树,然后加载 references/<picked-product>/
  • 编写 cloudflare.config.ts?请先阅读配置。
  • 设置 CI/CD?请阅读 GitHub Actions。
  • 部署失败?请阅读 cf 常见问题,然后阅读相应产品的运行时常见问题。
  • 下方的最简示例涵盖 Workers + KV + secret——除此之外的内容,请查阅相应参考资料

最简 Worker 示例(可直接复制粘贴的起步模板)

从此 Worker、一个 KV 绑定和一个密钥开始。进行类型检查前,请按照配置参考设置 TypeScript:

// cloudflare.config.ts
import { bindings, defineConfig } from "cf/config";
import * as entrypoint from "./src/index.ts" with { type: "cf-worker" };

export default defineConfig({
  worker: {
    name: "my-worker",
    entrypoint,
    compatibilityDate: "2026-09-30", // Today's date for a new Worker
    observability: { enabled: true },
    env: {
      CACHE: bindings.kv({ id: "REPLACE_WITH_KV_ID" }),
      API_SECRET: bindings.secret(),
    },
  },
});
// vite.config.ts
import { cloudflare } from "@cloudflare/vite-plugin";
import { defineConfig } from "vite";
export default defineConfig({ plugins: [cloudflare()] });
// src/index.ts
export default {
  async fetch(req: Request, env: Env): Promise<Response> {
    const hit = await env.CACHE.get("greeting");
    return new Response(hit ?? "hello");
  }
} satisfies ExportedHandler<Env>;

初始化命令:

pnpm add -D cf @cloudflare/vite-plugin@beta vite typescript
pnpm exec cf kv namespaces create --title CACHE # Copy the returned ID into config
pnpm exec cf workers types                      # Generates .cloudflare/types/index.d.ts
pnpm exec cf dev                                # Vite reports the local URL
pnpm exec cf deploy --dry-run --secrets-file .env.production
pnpm exec cf deploy --secrets-file .env.production

部署时,将 API_SECRET 放入被忽略的 .env.production,本地开发时放入 .dev.vars。声明 bindings.secret() 会使该值成为部署验证时的必填项;CLI 进程中的 dotenvx 值不会自动成为 Worker 密钥。将 .cloudflare/types 添加到 tsconfig.json;完整的 TypeScript 设置请参阅配置参考。请谨慎更改现有 Worker 的兼容日期。

已验证的 cf beta 尚未实现实时日志流和旧版 Pages 资源部署,即使命令出现在搜索结果或帮助信息中也是如此。请使用控制面板中的 Workers Logs 查看日志;新 Web 项目请使用 Workers 静态资源。对于旧版 Pages 项目,请确保现有部署正常运行,同时规划迁移;不要臆造 cf pages deploy 的替代命令。请参阅限制。

对于 Pages / D1 / Durable Objects / 多环境 / CI,请查阅 references/。

快速决策树

“我需要运行代码”
Need to run code?
├─ Serverless functions at the edge → workers/
├─ Full-stack web app with Git deploys → workers/ (framework) + static-assets/
├─ Maintain or migrate an existing Pages app → pages/ (legacy reference)
├─ Stateful coordination/real-time → durable-objects/
├─ Long-running multi-step jobs → workflows/
├─ Run containers → containers/
├─ Multi-tenant (customers deploy code) → workers-for-platforms/
├─ Scheduled tasks (cron) → cron-triggers/
├─ Lightweight edge logic (modify HTTP) → snippets/
├─ Process Worker execution events (logs/observability) → tail-workers/
└─ Optimize latency to backend infrastructure → smart-placement/
“我需要存储数据”
Need storage?
├─ Key-value (config, sessions, cache) → kv/
├─ Relational SQL → d1/ (SQLite) or hyperdrive/ (existing Postgres/MySQL)
├─ Object/file storage (S3-compatible) → r2/
├─ Message queue (async processing) → queues/
├─ Vector embeddings (AI/semantic search) → vectorize/
├─ Strongly-consistent per-entity state → durable-objects/ (DO storage)
├─ Secrets management → secrets-store/
├─ Streaming ETL to R2 → pipelines/
└─ Persistent cache (long-term retention) → cache-reserve/
“我需要使用 AI/ML”
Need AI?
├─ Run inference (LLMs, embeddings, images) → workers-ai/
├─ Vector database for RAG/search → vectorize/
├─ Build stateful AI agents → agents-sdk/
├─ Gateway for any AI provider (caching, routing) → ai-gateway/
└─ AI-powered search widget → ai-search/
“我需要网络/连接能力”
Need networking?
├─ Expose local service to internet → tunnel/
├─ TCP/UDP proxy (non-HTTP) → spectrum/
├─ WebRTC TURN server → turn/
├─ Private network connectivity → network-interconnect/
├─ Optimize routing → argo-smart-routing/
├─ Optimize latency to backend (not user) → smart-placement/
└─ Real-time video/audio → realtimekit/ or realtime-sfu/
“我需要安全功能”
Need security?
├─ Web Application Firewall → waf/
├─ DDoS protection → ddos/
├─ Bot detection/management → bot-management/
├─ API protection → api-shield/
├─ CAPTCHA alternative → turnstile/
└─ Credential leak detection → waf/ (managed ruleset)
“我需要媒体/内容”
Need media?
├─ Image optimization/transformation → images/
├─ Video streaming/encoding → stream/
├─ Browser automation/screenshots → browser-rendering/
└─ Third-party script management → zaraz/
“我需要基础设施即代码”
Need IaC? → pulumi/ (Pulumi), terraform/ (Terraform), or api/ (REST API)

产品索引

计算与运行时
产品参考
Workersreferences/workers/
Pagesreferences/pages/
Pages Functionsreferences/pages-functions/
Durable Objectsreferences/durable-objects/
Workflowsreferences/workflows/
Containersreferences/containers/
Workers for Platformsreferences/workers-for-platforms/
Cron Triggersreferences/cron-triggers/
Tail Workersreferences/tail-workers/
Snippetsreferences/snippets/
Smart Placementreferences/smart-placement/
存储与数据
产品参考
KVreferences/kv/
D1references/d1/
R2references/r2/
Queuesreferences/queues/
Hyperdrivereferences/hyperdrive/
DO Storagereferences/do-storage/
Secrets Storereferences/secrets-store/
Pipelinesreferences/pipelines/
R2 Data Catalogreferences/r2-data-catalog/
R2 SQLreferences/r2-sql/
AI 与机器学习
产品参考
Workers AIreferences/workers-ai/
Vectorizereferences/vectorize/
Agents SDKreferences/agents-sdk/
AI Gatewayreferences/ai-gateway/
AI Searchreferences/ai-search/
网络与连接
产品参考
Tunnelreferences/tunnel/
Spectrumreferences/spectrum/
TURNreferences/turn/
Network Interconnectreferences/network-interconnect/
Argo Smart Routingreferences/argo-smart-routing/
Workers VPCreferences/workers-vpc/
安全
产品参考
WAFreferences/waf/
DDoS Protectionreferences/ddos/
Bot Managementreferences/bot-management/
API Shieldreferences/api-shield/
Turnstilereferences/turnstile/
媒体与内容
产品参考
Imagesreferences/images/
Streamreferences/stream/
Browser Renderingreferences/browser-rendering/
Zarazreferences/zaraz/
实时通信
产品参考
RealtimeKitreferences/realtimekit/
Realtime SFUreferences/realtime-sfu/
开发者工具
产品参考
cf CLIreferences/cf/
Miniflarereferences/miniflare/
C3references/c3/
Observabilityreferences/observability/
Analytics Enginereferences/analytics-engine/
Web Analyticsreferences/web-analytics/
Sandboxreferences/sandbox/
Workerdreferences/workerd/
Workers Playgroundreferences/workers-playground/
基础设施即代码
产品参考
Pulumireferences/pulumi/
Terraformreferences/terraform/
APIreferences/api/
其他服务
产品参考
Email Routingreferences/email-routing/
Email Workersreferences/email-workers/
Static Assetsreferences/static-assets/
Bindingsreferences/bindings/
Cache Reservereferences/cache-reserve/

故障排查

提升网络访问权限

如果部署因网络问题(超时、DNS 错误、连接重置)而失败,请使用提升的权限重新运行部署(使用 sandbox_permissions=require_escalated)。当沙盒网络阻止出站请求时,部署需要提升网络访问权限。

向用户提供的示例说明:

The deploy needs escalated network access to deploy to Cloudflare. I can rerun the command with escalated permissions—want me to proceed?

评论

支持 Markdown