Appearance
创建一个Cloudflare Worker项目
利用命令创建一个初始的 Worker 项目,后面参数是项目名称(也是指定项目目录)
bash
npm create cloudflare@latest demo-cloudflare-worker-01修改一下主入口的方法内容
javascript
export default {
async fetch(request, env, ctx) {
// 获取请求的方法 (GET, POST 等)
const method = request.method;
// 调用 console.log() 打印日志,可以在 Workers 的日志中查看
console.log(`收到一个 ${method} 请求`);
return new Response("Hello World! ");
},
};本地启动
从 package.json 文件里可以找到可以启动本地服务的命令 【"dev": "wrangler dev",】
bash
npm run dev启动后终端会显示请求地址,默认是 http://127.0.0.1:8787
部署到Cloudflare
在 Cloudflare 创建 Worker 的时候选择 Continue with GitHub
选择对应的 GitHub 仓库,可能需要授权组织访问权限
部署命令默认的
npx wrangler deploy即可,不用修改然后每次提交推送到 GitHub 仓库都会触发部署
Worker 的原本域名容易遭受DNS污染,经常无法正常访问。给Worker添加自定义域,便于访问。
访问环境变量
配置位置:
- Cloudflare Workers -> 设置 -> 环境变量
- 代码中:wrangler.jsonc 文件里
"vars": { "MY_ENV_VAR3": "代码里的环境变量" }
注意:wrangler.jsonc 文件默认会全量覆盖Cloudflare的环境变量,设置
"keep_vars": true才能保留Cloudflare的变量(前提是wrangler.jsonc 文件里没有同名的变量,如果有同名变量依旧会覆盖)
读取环境变量:
javascript
console.log(`========== 环境变量1:${env.MY_ENV_VAR1}`);
console.log(`========== 环境变量2:${env.MY_ENV_VAR2}`);
console.log(`========== 环境变量3:${env.MY_ENV_VAR3}`);添加cron定时器
wrangler.jsonc 文件里配置:
"triggers": {
"crons": [
"0 */6 * * *", // 每6小时一次 (UTC 0:00, 6:00, 12:00, 18:00)
"0 0/1 * * * ?" // 每分钟
]
}- 注意是 UTC 时区,北京时间是UTC+8,也就是说北京时间 = UTC + 8小时
- 假设需要每天中午12点(北京时间)执行,则应该配置 cron 为每天 4点(UTC)执行
index.js 文件里添加定时器处理函数入口:
async scheduled(event, env, ctx) {
// 定时任务 - 打印时间
demoUtil.test99(event, env, ctx);
}本地启动cron调试模式命令:npx wrangler dev --test-scheduled
本地调试手动触发:http://localhost:8787/__scheduled?cron=0 0/1 * * * ?