如何在Cloudflare Worker运行时获取Deployment ID
获取Cloudflare Worker部署ID用于缓存键生成
你可以直接通过Cloudflare自动注入的环境变量CF_WORKER_DEPLOYMENT_ID获取部署ID,这个ID和Wrangler部署输出、Cloudflare控制台显示的完全一致,无需额外配置。
部署时的Wrangler输出示例
wrangler deploy cloudflarewrapper.js ⛅️ wrangler 3.0.1 (update available 3.78.11) ------------------------------------------------------- Total Upload: 1873.17 KiB / gzip: 278.74 KiB Uploaded myscript (4.90 sec) Published myscript (1.40 sec) https://myscript.xx.workers.dev Current Deployment ID: 506d732c-7cda-11ef-ba53-136088c204d0
代码实现
直接在Worker的fetch函数中通过env.CF_WORKER_DEPLOYMENT_ID获取部署ID,用于构建缓存键:
export default { async fetch(request, env, ctx) { const cacheUrl = new URL(request.url); // 使用完整部署ID作为版本标识 const currentActiveVersion = env.CF_WORKER_DEPLOYMENT_ID; // 或者按需取ID的前8位 // const currentActiveVersion = env.CF_WORKER_DEPLOYMENT_ID.slice(0, 8); // 构建带版本标识的缓存键 const cacheKey = new Request(cacheUrl.toString() + currentActiveVersion, request); // 后续缓存逻辑... }, };
每次部署Worker时,CF_WORKER_DEPLOYMENT_ID会自动更新,确保缓存键随版本变更,彻底避免旧缓存数据导致的兼容性问题。
内容的提问来源于stack exchange,提问作者Daniel Alder
相关产品推荐
相关产品推荐

