deploy-cloudflare
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDeploy to Cloudflare
部署至Cloudflare
Why Cloudflare?
为什么选择Cloudflare?
- Global edge network (300+ cities)
- Zero cold starts (Workers)
- Automatic HTTPS and DDoS protection
- Integrated CDN and DNS
- Generous free tier
- 全球边缘网络(覆盖300+城市)
- 无冷启动(Workers)
- 自动HTTPS与DDoS防护
- 集成CDN与DNS
- 丰厚的免费额度
Quick Start
快速开始
bash
undefinedbash
undefinedInstall Wrangler
Install Wrangler
npm install -g wrangler
npm install -g wrangler
Login
Login
wrangler login
wrangler login
Deploy Pages
Deploy Pages
wrangler pages deploy ./dist
wrangler pages deploy ./dist
Deploy Worker
Deploy Worker
wrangler deploy
undefinedwrangler deploy
undefinedCloudflare Pages
Cloudflare Pages
Deploy Static Site
部署静态网站
bash
undefinedbash
undefinedOne-time deploy
One-time deploy
wrangler pages deploy ./dist --project-name=my-app
wrangler pages deploy ./dist --project-name=my-app
Connect Git repo (auto-deploy)
Connect Git repo (auto-deploy)
wrangler pages project create my-app --production-branch=main
undefinedwrangler pages project create my-app --production-branch=main
undefinedBuild Configuration
构建配置
toml
undefinedtoml
undefinedwrangler.toml (Pages Functions)
wrangler.toml (Pages Functions)
name = "my-app"
compatibility_date = "2025-01-01"
[build]
command = "npm run build"
undefinedname = "my-app"
compatibility_date = "2025-01-01"
[build]
command = "npm run build"
undefinedCloudflare Workers
Cloudflare Workers
Worker Configuration
Worker配置
toml
undefinedtoml
undefinedwrangler.toml
wrangler.toml
name = "my-worker"
main = "src/index.ts"
compatibility_date = "2025-01-01"
[vars]
ENVIRONMENT = "production"
[[kv_namespaces]]
binding = "MY_KV"
id = "abc123"
undefinedname = "my-worker"
main = "src/index.ts"
compatibility_date = "2025-01-01"
[vars]
ENVIRONMENT = "production"
[[kv_namespaces]]
binding = "MY_KV"
id = "abc123"
undefinedBasic Worker
基础Worker
typescript
export default {
async fetch(request, env, ctx) {
return new Response('Hello from the edge!', {
headers: { 'Content-Type': 'text/plain' }
});
}
};typescript
export default {
async fetch(request, env, ctx) {
return new Response('Hello from the edge!', {
headers: { 'Content-Type': 'text/plain' }
});
}
};Environment & Secrets
环境变量与密钥
bash
undefinedbash
undefinedSet secret (encrypted)
Set secret (encrypted)
wrangler secret put API_KEY
wrangler secret put API_KEY
Set variable (plain text)
Set variable (plain text)
wrangler pages secret put API_URL
wrangler pages secret put API_URL
Bulk upload
Bulk upload
echo "SECRET_KEY" | wrangler secret put SECRET_KEY
undefinedecho "SECRET_KEY" | wrangler secret put SECRET_KEY
undefinedDNS Management
DNS管理
bash
undefinedbash
undefinedList DNS records
List DNS records
wrangler dns list example.com
wrangler dns list example.com
Add A record
Add A record
wrangler dns create example.com --type A --name www --content 1.2.3.4
wrangler dns create example.com --type A --name www --content 1.2.3.4
Update record
Update record
wrangler dns update example.com --type A --name www --content 5.6.7.8
undefinedwrangler dns update example.com --type A --name www --content 5.6.7.8
undefinedDeployment Workflow
部署工作流
1. Initialize Project
1. 初始化项目
bash
wrangler init my-project
cd my-projectbash
wrangler init my-project
cd my-project2. Develop Locally
2. 本地开发
bash
wrangler devbash
wrangler dev3. Deploy
3. 部署
bash
undefinedbash
undefinedProduction
Production
wrangler deploy
wrangler deploy
Preview
Preview
wrangler deploy --env staging
undefinedwrangler deploy --env staging
undefinedBest Practices
最佳实践
- Use Environments: Separate staging and production
- Versioning: Rollback via dashboard if needed
- Edge Caching: Leverage Cache API for performance
- Rate Limiting: Protect Workers with rate limits
- Monitoring: Enable Workers Analytics
- 使用环境隔离:区分预发布环境与生产环境
- 版本控制:必要时可通过控制台回滚版本
- 边缘缓存:利用Cache API提升性能
- 速率限制:为Workers配置速率限制以防护
- 监控:启用Workers分析功能
Common Commands
常用命令
bash
undefinedbash
undefinedView logs (tail)
View logs (tail)
wrangler tail
wrangler tail
List deployments
List deployments
wrangler deployments list
wrangler deployments list
Rollback
Rollback
wrangler rollback --message "Revert breaking change"
wrangler rollback --message "Revert breaking change"
KV operations
KV operations
wrangler kv:key put --binding=MY_KV "key" "value"
wrangler kv:key get --binding=MY_KV "key"
undefinedwrangler kv:key put --binding=MY_KV "key" "value"
wrangler kv:key get --binding=MY_KV "key"
undefinedAnti-Patterns
反模式
- Don't store secrets in wrangler.toml (use )
wrangler secret - Don't deploy without testing locally ()
wrangler dev - Don't ignore compatibility_date (affects runtime behavior)
- Don't use Workers for long-running tasks (30s limit)
- 请勿在wrangler.toml中存储密钥(请使用)
wrangler secret - 请勿未经过本地测试就部署(使用测试)
wrangler dev - 请勿忽略compatibility_date(会影响运行时行为)
- 请勿使用Workers执行长时间任务(存在30秒限制)