tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表

函数概述

PDF
聚焦模式
字号
最后更新时间: 2024-03-21 18:35:11
Web 函数(Web Function)是云函数的一种函数类型,区别于事件函数(Event Function)对于事件格式的限制,专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行。

功能与优势

相较于事件型函数,Web 函数在支持 Web 服务场景的能力上,具备以下优势:
函数可以直接接收并处理 HTTP 或 WebSocket 原生请求,API 网关不再需要做 json 格式转换,减少请求处理环节,提升 Web 服务性能。
Web 函数的编写体验更贴近编写原生 Web 服务,可以使用 Node.js 原生接口,保证和本地开发服务体验一致。
丰富的框架支持,您可以使用常见的 Web 框架(例如 Nodejs Web 框架:ExpressKoa)编写 Web 函数,也可以将您本地的 Web 框架服务以极小的改造量快速迁移上云。
Web 函数自动为您创建 API 网关服务,部署完成后,网关侧会自动生成一个默认 URL 供用户访问和调用,简化了学习成本和调试过程。
控制台提供了测试能力,您可以在函数控制台快速测试您的服务。

运行原理

Web 函数运行原理如下图所示:

用户发送的 HTTP 请求经过 API 网关后,网关侧将原生请求直接透传的同时,在请求头部添加了网关触发函数时需要的函数名、函数地域等内容,并一起传递到函数环境,触发后端函数执行。
函数环境内,通过内置的 Proxy 实现 Nginx 转发,并去除头部非产品规范的请求信息,将原生 HTTP 请求通过指定端口发送给用户的 Web Server 服务。
用户的 Web Server 配置好指定的监听端口9000和服务启动文件后部署到云端,通过该端口获取 HTTP 请求并进行处理。

使用限制

功能限制

目前 Web 函数只支持绑定 API 网关触发器。
同一个函数支持绑定多个 API 触发器,但所有 API 都必须在一个 API 服务下。
不支持异步调用,不支持重试。
在腾讯云标准环境下,仅 /tmp 目录可读可写,输出文件时请注意选择 /tmp 路径,否则会导致服务因缺少写权限而异常退出。
对于 JAVA、Go 等需要打包部署的项目,请保证您的 scf_bootstrap 也在 zip 包中一起上传,否则可能导致找不到启动文件。

请求限制

Web 函数只能通过 API 网关调用,不支持通过函数 API 接口触发。
Response headers 中有以下限制:
所有 key 和 value 的大小不超过4KB。
body 的大小不超过6MB。
部署您的 Web 服务时,必须监听指定的 9000 端口和地址 0.0.0.0
目前 HTTP 请求 Header 里的 Connection 字段不支持自定义配置。

函数公共请求头

用户的 Web Server 从云函数环境中接收到的公共请求头如下表所示,以下字段均不支持自定义:
Header 字段
描述
X-Scf-Request-Id
当前请求 ID
X-Scf-Memory
函数实例运行时可使用的最大内存
X-Scf-Timeout
函数执行的超时时间
X-Scf-Version
函数版本
X-Scf-Name
函数名称
X-Scf-Namespace
函数所在命名空间
X-Scf-Region
函数所在地域
X-Scf-Appid
函数所有者的 Appid
X-Scf-Uin
函数所有者的 Uin

帮助和支持

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

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

文档反馈