Skip to content

创建一个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 * * * ?

页脚:版权前显示的信息