tencent cloud

边缘安全加速平台 EO

动态与公告
产品动态
安全公告
产品公告
产品简介
产品概述
产品优势
应用场景
EdgeOne 与 CDN 等产品功能对比
使用限制
购买指南
试用套餐体验权益说明
免费版套餐使用说明
计费概述
计费项目
购买指引
续费指引
欠费与退款说明
套餐选型对比
关于“干净流量”计费说明
DDoS 防护容量说明
快速入门
选择业务场景
快速接入网站安全加速
通过 Pages 快速部署网站
域名服务与源站配置
域名服务
HTTPS 证书
源站配置
站点加速
概述
访问控制
智能加速
缓存配置
文件优化
网络优化
URL 重写
修改头部
修改应答内容
规则引擎
图片与视频处理
单连接下载限速
DDoS 与 Web 防护
概述
DDoS 防护
Web 防护
Bot 管理
API 资产识别(Beta)
边缘函数
概述
快速指引
操作指引
Runtime APIs
示例函数
实践教程
Pages
四层代理
概述
新建四层代理实例
修改四层代理实例配置
停用/删除四层代理实例
批量配置转发规则
获取客户端真实IP
数据分析与日志服务
日志服务
数据分析
告警服务
站点与计费管理
计费管理
站点管理
版本管理
通用策略
通用参考
配置语法
请求与响应行为
国家/地区及对应代码枚举
Terraform
Terraform 简介
安装和配置 Terraform
实践教程
EdgeOne Skill 使用指南
自动预热/清除缓存
防盗刷/盗链实践
HTTPS 相关实践
加速优化
流量调度
数据分析与告警
第三方日志平台集成实践
对象存储类源站(例如:COS)配置实践
跨域响应配置
API 文档
History
Introduction
API Category
Making API Requests
Site APIs
Acceleration Domain Management APIs
Site Acceleration Configuration APIs
Edge Function APIs
Alias Domain APIs
Security Configuration APIs
Layer 4 Application Proxy APIs
Content Management APIs
Data Analysis APIs
Log Service APIs
Billing APIs
Certificate APIs
Origin Protection APIs
Load Balancing APIs
Diagnostic Tool APIs
Custom Response Page APIs
API Security APIs
DNS Record APIs
Content Identifier APIs
Legacy APIs
Ownership APIs
Image and Video Processing APIs
Multi-Channel Security Gateway APIs
Version Management APIs
Data Types
Error Codes
常见问题
产品特性相关问题
DNS 记录相关问题
域名配置相关问题
站点加速相关问题
数据与日志相关问题
安全防护相关问题
源站配置相关问题
排障指南
异常状态码参考
EdgeOne 4XX/5XX 状态码排障指南
520/524状态码排障指南
521/522 状态码排障指南
工具指南
相关协议
Service Level Agreement
源站防护启用特别约定
TEO 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

Fetch

PDF
聚焦模式
字号
最后更新时间: 2025-11-18 14:40:06
基于 Web APIs 标准 Fetch API 进行设计。边缘函数运行时可使用 fetch 发起异步请求,获取远程资源。

描述

function fetch(request: string | Request, requestInit?: RequestInit): Promise<Response>

参数

参数名称
类型
必填
说明
Request
string | Request
指定将要获取的请求资源。
RequestInit
请求对象的初始化配置项。详情请参见 RequestInit

高级功能

使用 fetch 时,可以通过传入特定参数实现更精细的控制和定制化逻辑。主要包含访问 EdgeOne 节点缓存或回源,图片处理,重定向。

访问 EdgeOne 节点缓存或回源

当客户端访问某个已接入 EdgeOne 站点的 加速域名 时(例如:www.example.com ),同时该请求触发了边缘函数执行,此时在该边缘函数中实现 fetch(www.example.com) 请求,该请求将访问 EdgeOne 节点缓存,若不存在缓存,则进行回源。
说明:
fetch 访问 EdgeOne 节点缓存与回源,需满足以下条件:
1. 客户端访问 EdgeOne 接入站点的加速域名,同时该请求触发了边缘函数执行。
2. fetch(request) 指定的 request.url 中的 HOST 和客户端请求 URL 中的 HOST 相同。
3. fetch(request) 指定的 request.headers.host 和客户端请求头 HOST 值相同。
fetch(event.request) 获取 EdgeOne 缓存与回源。
addEventListener('fetch', (event) => {
// fetch(event.request) 获取 EdgeOne CDN 缓存与回源。
const response = fetch(event.request);
event.respondWith(response);
});
fetch(url) 获取 EdgeOne 缓存与回源。
addEventListener('fetch', (event) => {
event.respondWith(handleEvent(event));
});

async function handleEvent(event) {
const { request } = event;
const urlInfo = new URL(request.url);
// 回源 URL 改写
const url = `${urlInfo.origin}/h5/${urlInfo.pathname}`;
// fetch(url) 获取 EdgeOne CDN 缓存与回源。
const response = await fetch(url);
return response;
}

图片处理

fetch 支持传入参数 requestInit.eo.image 对图片进行缩放或格式转换,详情参见图片处理的参数配置项 ImageProperties
fetch 的默认行为是自动跟随重定向,即第二个参数 requestInit.redirect 属性默认值为 follow在以下场景中可能导致问题
1. 登录/认证场景:源站在重定向响应中设置 Set-Cookie 头(如登录成功后返回 302 并设置会话 Cookie),自动跟随重定向会导致 Cookie 无法正确传递给客户端;
2. 相对路径资源加载:源站将首页重定向到子目录(如 / 重定向到 /subdir/index.html),若页面中的 CSS/JS 等资源使用相对路径,自动跟随重定向会导致客户端基于原始路径加载资源,可能导致路径错误;
3. 需要自定义重定向逻辑:需要在重定向前后执行特定操作(如日志记录、修改重定向目标等)。
若您的业务涉及到以上场景,请将 redirect 参数设置为 manual。边缘函数将直接返回重定向响应给客户端,由客户端执行重定向。
说明:
使用 fetch(request, requestInit) 实现图片处理时,需要同时满足 fetch 获取 EdgeOne 节点缓存与回源的条件。

超时时间设置

fetch 支持通过 requestInit.eo.timeoutSetting 配置请求的超时时间,默认超时时间为15秒,最大可设置为300秒。
fetch(url, {
eo: {
timeoutSetting: {
connectTimeout: 60000, // 建立连接的超时时间,单位:毫秒
readTimeout: 60000, // 读取响应的超时时间,单位:毫秒
writeTimeout: 60000, // 发送请求的超时时间,单位:毫秒
}
}
})

重定向

fetch 支持 3xx 重定向状态码。可使用第二个参数 requestInit.redirect 属性进行设置,更多重定向配置,请查看 RequestInit
重定向规则遵从 Web APIs 标准 fetch API,针对不同状态码有不同的跟随规则:
状态码
重定向规则
301、302
POST 方法被转为 GET 方法。
303
HEAD / GET 外的所有方法都被转为 GET 方法。
307、308
保留原始方法。
注意
重定向的地址来源于响应头 Location,若无该响应头,则不会重定向。
响应头 Location 值可以是绝对 URL 或者相对 URL,详情请参见 RFC-3986: URI Reference

运行时限制

边缘函数中使用 fetch 发起请求,存在以下限制:
次数限制:边缘函数单次运行中可发起的 fetch 总次数为 64,超过该限制的 fetch 请求会请求失败,并抛出异常。
并发限制:边缘函数单次运行中允许发起 fetch 最大并发数为 8,超过该限制的 fetch 请求会被延迟发起,直到某个正在运行着的 fetch 被 resolve。
时间限制:边缘函数中使用fetch发起请求的默认超时时间为15秒,最大可设置为300秒。
注意
每一次重定向都会计入请求次数,且其优先级高于新发起的 fetch 请求。

相关参考



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈