[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fFAnwVIvPrVAQ4rGsf_RF8ryMYOGhCpRJY28xoe58dy0":3},{"item":4,"related":44},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":35,"sourceName":36,"sourceUrl":36,"status":37,"seoTitle":36,"seoDescription":36,"canonicalUrl":36,"isFeatured":38,"sno":39,"sortOrder":40,"publishedAt":41,"updatedAt":42,"createdAt":43},"8f7ce6a9-492b-4b45-afa4-d16905cc3b65","article","边缘函数：把代码跑在全球服务器","edge-functions","不想租服务器管运维？边缘函数把代码自动部署到全球几百个节点，毫秒级就近执行。","传统后端要你租服务器、装环境、管扩容、防宕机，一件小事背后是一整套运维。边缘函数（Edge Functions）把这件事彻底简化：你只写一段代码，平台把它自动部署到全球几百个节点，用户请求落到离他最近的那个，毫秒级响应，没有常驻服务器，也不用你管。Cloudflare Workers、Deno Deploy 是其中的代表。\n\n## 背景：为什么需要「边缘」\n\n用户在上海，服务器在美东，一次请求要跨半个地球来回，延迟动辄几百毫秒。把计算挪到离用户近的地方，是提速最直接的一招。边缘函数的思路是：不让你管服务器，而是把函数代码分发到全球边缘节点，在每个节点上按需、瞬时执行。\n\n## 它长什么样\n\n以 Cloudflare Workers 为例，一个函数就是一个 `fetch` 事件处理器，部署后立刻获得一个全球 URL：\n\n```javascript\nexport default {\n  async fetch(request) {\n    const url = new URL(request.url);\n    if (url.pathname === \"\u002Fhello\") {\n      return new Response(\"来自边缘的问候\");\n    }\n    return new Response(\"Not found\", { status: 404 });\n  }\n}\n```\n\n你 `deploy` 一下，这段代码就跑在了全球几百个数据中心，谁访问谁就近执行。\n\n## 一次请求怎么走\n\n```mermaid\nflowchart LR\n    A[用户 上海] --> B[最近边缘节点]\n    C[用户 纽约] --> D[最近边缘节点]\n    B --> E[你的函数代码 就近执行]\n    D --> E\n    E --> F[返回结果 毫秒级]\n```\n\n## 取舍与边界\n\n- **冷启动极快**：边缘函数通常是轻量隔离（如 V8 Isolate），启动以毫秒计，远快于传统容器。\n- **运行时受限**：为了快和轻，边缘环境不是完整 Node.js，部分 API（如某些文件系统、原生模块）不可用，写代码要适配。\n- **有状态数据要外置**：函数本身无状态、可能随时在哪个节点跑，数据库\u002F缓存要走外部服务（如边缘 KV）。\n- **适合「薄」逻辑**：鉴权、改写、A\u002FB、转发、轻计算最合适；重 CPU 或长任务仍交给中心化服务。\n\n## Tips\n\n- 入门只要写一个 `fetch` 处理器，二十行代码就能上线一个全球接口。\n- 适合做鉴权中间件、请求改写、A\u002FB 分流、轻量 API 网关。\n- 有状态数据（会话、计数）用平台提供的边缘 KV，别指望函数本地存。\n- 注意运行时差异：别用边缘不支持的 Node API，部署前本地跑一遍。\n- 重活（大模型推理、大计算）留给中心服务，边缘只做「快而薄」的那一层。","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-22\u002F4e66dabf-7f69-4ba0-b66d-12774273f763.jpg",[],[],"Foundit AI","https:\u002F\u002Ffoundit.cn","f39339b1-aaa6-4e86-b0c2-a6e6a21113b5",{"id":18,"name":19,"slug":20,"description":21},"6179d3b6-dc34-4483-9ded-3cd9f1b37a47","科普","abbreviation","介绍各领域新兴概念",[23,27,31],{"id":24,"name":25,"slug":26},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":28,"name":29,"slug":30},"a202d639-99a6-488a-a712-4d4c6ffd7e15","开发","dev",{"id":32,"name":33,"slug":34},"4c2bbea6-eab7-40a8-8447-1de478ff7749","分析","analyse","资料来源",null,"published",false,69,0,"2026-07-22T00:00:00.000Z","2026-07-22T06:38:22.660Z","2026-07-20T01:11:48.654Z",[45,55,64],{"id":46,"type":6,"title":47,"slug":48,"summary":49,"coverUrl":50,"authorName":51,"sno":52,"publishedAt":53,"createdAt":54},"9ccde95c-d754-4808-91f7-488f392e3eeb","你的品牌在AI眼里到底存不存在？这套系统说了算","automated-geo-monitoring-system","靠手动抽查来验证GEO效果，本质上是在跟概率玩游戏。赢一次，不代表能一直赢。","\u002Fuploads\u002F2026-08-07\u002Fdf111c0d-f14a-4b2a-8347-141e96b71654.jpg","Foundit",1,"2026-08-07T00:00:00.000Z","2026-08-07T04:31:30.843Z",{"id":56,"type":6,"title":57,"slug":58,"summary":59,"coverUrl":60,"authorName":14,"sno":61,"publishedAt":62,"createdAt":63},"544fc658-c911-4de6-93b0-d2520087119a","MCP：AI 的「USB-C」时刻","mcp-ai-usb-c-moment","以前每个 AI 应用都要为 GitHub、数据库、日历各写一套私有连接器，这是 M×N 的集成噩梦，直到 MCP 的出现","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-19\u002Fc3c06d99-a0ac-40ac-a283-7e77aabb4c4c.jpg",46,"2026-07-20T00:00:00.000Z","2026-07-19T16:13:40.316Z",{"id":65,"type":6,"title":66,"slug":67,"summary":68,"coverUrl":69,"authorName":51,"sno":70,"publishedAt":71,"createdAt":72},"1bb735e6-efec-4ad5-9065-8ccfd38f5b5d","一张 JPEG 为什么会长出方块、蚊子噪点和白色光环？","why-jpeg-images-have-compression-artifacts","JPEG 通过色度抽样、分块变换、量化和熵编码大幅缩小照片，其中量化会永久舍弃部分细节。压缩过强或反复保存后，方块、边缘光环与蚊子噪点便会显现。本文从人眼偏好出发解释这些痕迹如何产生。","\u002Fuploads\u002F2026-08-14\u002F8011c7fa-472c-4599-a65a-c993b095375f.jpg",60,"2026-08-14T00:00:00.000Z","2026-08-14T03:06:16.293Z"]