腾讯云国际版无服务器SCF入门实战:函数创建、触发器配置、冷启动优化与成本对比(2026最新版)
Meta Description: 腾讯云国际版SCF无服务器函数怎么用?
- 前言
- SCF是什么:无服务器架构的核心概念
- 控制台创建第一个SCF函数(Python示例)
- 三大触发器实操详解
- 冷启动优化:让函数响应更快
- VPC访问:让Serverless函数连通内网资源
- 日志查看与监控告警
- SCF vs 自建服务器 vs Lighthouse:成本对比
Meta Description: 腾讯云国际版SCF无服务器函数怎么用?本文从零讲起:控制台创建函数、Python/Node.js运行时配置、API网关触发器、COS事件触发、定时触发器三大触发方式实操演示,附冷启动优化技巧、VPC访问内网资源、日志监控配置,以及SCF vs 自建服务器 vs Lighthouse价格对比表,2026年照着做不踩坑。
关键词:腾讯云国际版SCF、Serverless Cloud Function、无服务器函数、腾讯云函数计算、API网关触发器、COS触发器、定时触发、冷启动优化、Serverless入门
前言
一句话答案:腾讯云国际版SCF(Serverless Cloud Function)是一种免运维的事件驱动计算服务——你只管写函数代码、选触发器,平台自动处理扩缩容和服务器运维;按实际调用次数和执行时长计费,空闲时零费用,特别适合API后端、文件处理、定时任务和Webhook回调等场景;入门门槛极低,控制台点几下就能跑通第一个函数。本文按"概念理解→控制台创建→三大触发器实操→冷启动优化→VPC内网访问→日志监控→价格对比→FAQ"的顺序,带你在腾讯云国际版上完整跑一遍Serverless。
声明:本文价格数据采集于2026年8月,为官网及公开资料参考价,优惠活动与价格可能随时变动,请以腾讯云官网(intl.cloud.tencent.com)实际显示为准。
一、SCF是什么:无服务器架构的核心概念
很多人第一次听到"Serverless"会困惑——服务器明明还在,为什么叫"无服务器"?关键在于你不再需要管理服务器本身:不用选配置、不用装操作系统、不用打补丁、不用担心扩容。你只做一件事:写好函数代码,上传到云端,告诉平台"什么时候执行这个函数"。
腾讯云国际版的SCF(Serverless Cloud Function)是这个领域的核心产品,和阿里云FC、AWS Lambda、Google Cloud Functions属于同一品类。SCF的核心价值可以归纳为三点:
- 零运维:无需管理服务器,平台自动处理运行环境、弹性扩缩、故障恢复
- 按量计费:按实际调用次数×执行时长收费,没调用就不花钱,空闲成本为零
- 事件驱动:支持HTTP请求、对象存储事件、定时触发、消息队列等多种触发方式,天然适合异步处理和微服务架构
SCF支持的运行时包括Python、Node.js、Java、Go、PHP、C#等主流语言,甚至支持自定义运行时和容器镜像部署。对于大多数入门用户来说,Python和Node.js是最常见的选择。
典型使用场景:
| 场景 | 说明 | 适合SCF的原因 |
|---|---|---|
| API后端 | 接收HTTP请求,返回JSON | 按请求计费,高并发自动扩容 |
| 文件处理 | 上传图片/视频后自动转码、压缩 | COS事件触发,处理完自动释放 |
| 定时任务 | 每天凌晨备份数据、清理日志 | Cron定时触发,无需常驻服务器 |
| Webhook回调 | 第三方平台通知回调处理 | 事件驱动,响应快,按量付费 |
| 数据管道 | 日志分析、ETL数据清洗 | 与消息队列/COS联动,流式处理 |
二、控制台创建第一个SCF函数(Python示例)
登录腾讯云国际版控制台后,搜索"Serverless Cloud Function"或直接访问intl.cloud.tencent.com/product/scf,进入SCF控制台。
第一步:创建函数
- 点击"新建函数" → 选择"从头开始创作"
- 函数名称填写
my-first-function(只能用小写字母、数字和连字符) - 地域选择离你目标用户最近的区域(如
ap-hongkong、ap-singapore) - 运行时选择
Python 3.9(推荐稳定版) - 命名空间选择
default(默认即可) - 点击"完成",等待函数创建完成
第二步:编写测试代码
创建完成后进入函数代码编辑页面,粘贴以下代码:
import json
def main_handler(event, context):
"""SCF入口函数"""
name = event.get('queryStringParameters', {}).get('name', 'World')
return {
'statusCode': 200,
'headers': {'Content-Type': 'application/json'},
'body': json.dumps({
'message': f'Hello, {name}!',
'function_name': context.function_name,
'region': context.region
})
}
点击"部署"按钮,等待部署完成。
第三步:配置触发器——API网关
在函数详情页,点击"触发管理" → "创建触发器":
- 触发方式选择"API网关触发器"
- 请求方法选择
ANY(支持GET和POST) - 环境选择"发布"
- 点击"保存"
保存后会生成一个公网访问的API地址,格式类似:
https://service-xxx.ap-hongkong.apigateway.cloud.tencent.com/release/
打开浏览器访问这个地址加上?name=Test,你应该会看到返回:
{"message": "Hello, Test!", "function_name": "my-first-function", "region": "ap-hongkong"}
恭喜,你的第一个Serverless函数已经跑通了!
三、三大触发器实操详解
SCF的强大之处在于多种触发器的组合使用。以下逐一演示三种最常用的触发器。
触发器一:API网关触发器(HTTP访问)
这是最常用的触发器,让函数对外提供HTTP接口。创建时的关键配置项:
| 配置项 | 说明 | 推荐值 |
|---|---|---|
| 协议 | HTTPS(强制) | HTTPS |
| 鉴权方式 | 简密钥/免鉴权 | 生产环境选简密钥 |
| 请求方法 | GET/POST/ANY | ANY |
| 跨域CORS | 是否允许跨域请求 | 按需开启 |
| 限流 | 单实例QPS上限 | 默认200即可 |
触发器创建后会自动生成API路径和网关域名。如果需要自定义域名,需要在API网关控制台配置域名绑定和SSL证书。
触发器二:COS触发器(文件上传事件)
当COS(对象存储)中有文件上传、删除等操作时,自动触发函数执行。典型场景:用户上传图片后自动压缩、添加水印、生成缩略图。
创建步骤:
- 在函数"触发管理" → "创建触发器"
- 触发方式选择"COS触发器"
- 选择已有的COS存储桶,或先去COS控制台创建一个
- 事件类型选择"Put(上传)"
- 前缀过滤:填
images/表示只监听images/目录下的上传 - 点击"保存"
示例代码(图片上传后自动记录日志):
import json
import time
def main_handler(event, context):
"""COS上传事件处理"""
// 从事件中提取文件信息
bucket = event['Records'][0]['cos']['bucket']['name']
key = event['Records'][0]['cos']['object']['key']
size = event['Records'][0]['cos']['object']['size']
print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] New file uploaded: {key} ({size} bytes) in bucket {bucket}")
// 在这里可以添加图片处理逻辑
// 例如:调用数据万象CI做图片压缩、水印等
return {"status": "processed", "file": key}
触发器三:定时触发器(Cron任务)
替代传统的crontab,适合定时备份、定时清理、定时报表等场景。配置格式使用标准Cron表达式:
{秒 分 时 日 月 周 年},常见示例:
| Cron表达式 | 含义 |
|---|---|
0 0 2 | 每天凌晨2点执行 |
0 30 8 1-5 * | 工作日上午8:30执行 |
0 0 0 1 * | 每月1日零点执行 |
0 /30 | 每30分钟执行一次 |
创建步骤:
- 创建触发器 → 选择"定时触发器"
- 填写Cron表达式(如
0 0 2表示每天凌晨2点) - 启用触发器 → 保存
函数代码中可以通过event参数获取触发信息,区分是定时触发还是API调用。
四、冷启动优化:让函数响应更快
Serverless最大的性能痛点是冷启动——函数长时间没被调用后,第一次请求需要初始化运行环境,延迟可能从几毫秒飙到几秒。以下是经过实测验证的优化手段:
1. 选择轻量运行时
不同运行时冷启动时间差异巨大。实测参考(同一函数逻辑):
| 运行时 | 冷启动延迟(参考) | 热启动延迟(参考) | 说明 |
|---|---|---|---|
| Python 3.9 | 约 200-500ms | 约 5-20ms | 最快,推荐入门首选 |
| Node.js 16 | 约 250-600ms | 约 5-25ms | 与Python接近 |
| Go 1.x | 约 100-300ms | 约 3-10ms | 编译型语言最快 |
| Java 11 | 约 1-3s | 约 10-50ms | JVM启动慢,但热启动快 |
| 自定义运行时 | 取决于镜像大小 | 取决于应用 | 灵活但需自行优化 |
2. 减少依赖包体积
部署包越小,冷启动越快。Python项目可以用pip install --target ./package --no-deps只装必要依赖,避免把整个虚拟环境打包。Node.js用npm install --production跳过devDependencies。
3. 保持预热(Keep-Warm)
对于延迟敏感的函数,可以写一个定时触发器每隔5分钟调用一次自身,保持实例不被回收:
import json
def main_handler(event, context):
// 如果是定时触发(Keep-Warm调用),直接返回
if 'trigger_name' in str(event):
return {"status": "warm"}
// 正常业务逻辑
return {"statusCode": 200, "body": json.dumps({"message": "OK"})}
4. 初始化代码外置
把数据库连接、配置读取等耗时操作放在函数模块级别(全局作用域),而非handler内部。这样热启动时这些资源可以复用:
import os
// 模块级初始化——只在冷启动时执行一次
DB_HOST = os.environ.get('DB_HOST', 'localhost')
// 可以在这里建立数据库连接池
def main_handler(event, context):
// handler内部不再做初始化
pass
五、VPC访问:让Serverless函数连通内网资源
默认情况下SCF函数只能访问公网。如果你需要让函数访问同VPC内的数据库(如TencentDB MySQL、Redis)、内网API或私有服务,需要在函数配置中开启VPC访问。
配置步骤:
- 进入函数详情页 → "函数管理" → "VPC配置"
- 选择"启用VPC",指定VPC和子网
- 安全组选择允许出站的规则
- 保存后重新部署函数
注意事项:
| 项目 | 说明 |
|---|---|
| 延迟影响 | VPC内网访问会增加约10-50ms延迟 |
| 冷启动影响 | VPC配置会额外增加约200-500ms冷启动时间 |
| 子网选择 | 建议选择有NAT网关的子网,同时支持内网和公网访问 |
| IP分配 | SCF会在VPC内分配临时弹性网卡,函数实例回收后IP释放 |
实用建议:如果函数只需要访问公网(如调用第三方API),不要开启VPC——白白增加冷启动延迟。只有确实需要访问内网资源时才开启。
六、日志查看与监控告警
日志查看:
SCF函数的执行日志自动写入腾讯云日志服务CLS(Cloud Log Service)。在函数详情页点击"日志查询",可以直接跳转到CLS控制台查看:
- 实时日志:最近1小时的调用日志
- 历史日志:按时间范围查询
- 关键字搜索:支持
ERROR、WARNING等级别过滤
监控指标:
SCF控制台内置了关键监控面板:
| 指标 | 说明 | 告警建议 |
|---|---|---|
| 调用次数 | 函数被触发的总次数 | 异常飙升时告警 |
| 错误率 | 失败调用占比 | 超过1%立即告警 |
| 平均耗时 | 函数执行平均时间 | 超过业务SLA时告警 |
| 并发实例数 | 同时运行的实例数 | 接近配额时告警 |
| 冷启动占比 | 冷启动调用比例 | 超过20%需优化 |
建议配置告警规则:在云监控控制台创建告警策略,关联SCF的错误率和并发数指标,通过微信/邮件/短信接收通知。
七、SCF vs 自建服务器 vs Lighthouse:成本对比
Serverless不是万能的,不同场景下成本和性能差异很大。以下是三种方案的横向对比:
| 对比项 | SCF无服务器函数 | Lighthouse轻量服务器 | CVM云服务器 |
|---|---|---|---|
| 适用场景 | 事件驱动、低频API、定时任务 | 持续运行的Web服务、数据库 | 企业级生产环境 |
| 月费起步 | $0(空闲不计费) | 约 $3.5/月 | 约 $5/月 |
| 10万次/月调用成本 | 约 $0.20(免费额度覆盖) | $3.5(固定) | $5+(固定) |
| 100万次/月调用成本 | 约 $3.5-5 | $3.5(固定) | $5+(固定) |
| 持续运行24小时/天 | 约 $15-30/月(取决于内存) | $3.5/月(固定) | $5+/月(固定) |
| 扩缩容 | 自动秒级扩缩 | 手动升级 | 手动或Auto Scaling |
| 运维负担 | 零 | 中等(需管系统) | 高(需管系统+网络) |
| 冷启动延迟 | 有(200ms-3s) | 无 | 无 |
| 最大执行时长 | 15分钟(可申请延长) | 无限制 | 无限制 |
| 并发限制 | 默认1000(可提升) | 取决于配置 | 取决于配置 |
成本决策逻辑:
- 调用次数少于100万次/月,且每次执行时间短 → SCF最省钱,可能完全免费
- 需要7×24持续运行 → Lighthouse或CVM更划算(SCF按执行时间计费反而贵)
- 调用量波动大(白天高峰、凌晨低谷) → SCF弹性最好,峰值自动扩容
- 需要持久化状态(数据库、文件缓存) → SCF需要搭配TencentDB或Redis
九、总结与推荐方案
核心结论一句话:SCF无服务器函数适合"事件驱动、低频调用、不想运维"的场景——API后端、文件处理、定时任务是最佳拍档;调用量少于100万次/月时几乎免费;但如果需要7×24持续运行或处理超长任务,Lighthouse或CVM反而更划算。
推荐方案组合:个人项目/原型验证选SCF + API网关(零成本起步);中小网站API后端选SCF + 腾讯云API网关(自动扩缩、按量付费);混合架构选SCF处理异步任务 + Lighthouse跑Web主站(动静分离、成本最优)。
还没注册腾讯云国际版的,先看本站腾讯云国际版注册教程完成账号开通和支付绑定;需要选云服务器的参考CVM选购教程选对实例和区域;预算敏感场景推荐Lighthouse $3.5/月建站实战先跑通业务。欢迎收藏本站持续跟踪腾讯云国际版最新教程。
🚀 需要海外云服务器?通过 4.chengzicloud.cloud 访问首页,了解更多腾讯云国际版教程和实战方案。
本文由 4.chengzicloud.cloud 提供,点击访问首页了解更多
常见问题(FAQ)
1:SCF函数有免费额度吗?每月能省多少钱?
腾讯云国际版SCF提供免费额度:每月40万次调用 + 20万GB·s执行时长。对于个人项目和小型API来说,这个免费额度基本够用。超出部分按调用次数(约$0.20/百万次)和执行时长(约$0.00001667/GB·秒)计费。
2:SCF支持哪些编程语言?推荐用哪个?
支持Python、Node.js、Java、Go、PHP、C#等主流语言,也支持自定义运行时和容器镜像。入门推荐Python——生态丰富、部署包小、冷启动快。Node.js也很适合API后端场景。Java冷启动较慢,除非有现成Java项目要迁移,否则不建议作为首选。
3:SCF和API网关一起用,怎么控制访问权限?
API网关支持多种鉴权方式:①免鉴权(公开访问);②密钥对鉴权(调用时传入SecretId和SecretKey);③JWT鉴权(适合前端应用);④SCF集成鉴权(函数内部校验token)。生产环境建议至少开启密钥对鉴权,防止函数被恶意调用。
4:SCF函数执行超时了怎么办?
默认超时时间是3秒,最大可配置为900秒(15分钟)。在函数"函数管理" → "高级配置"中修改超时时间。如果业务逻辑确实需要更长时间,考虑拆分为多个函数串联执行,或者改用容器实例(CI)运行长时任务。
5:冷启动延迟太大,有什么彻底的解决方案吗?
除了第四节提到的优化手段,还有两个进阶方案:①使用预留实例——为关键函数预分配常驻实例,消除冷启动但会产生固定费用(约$10-30/月/实例);②使用容器镜像部署——自定义镜像包含完整运行环境,冷启动比标准运行时更快。
6:SCF函数可以访问公网吗?比如调用第三方API?
默认即可访问公网。SCF函数运行在腾讯云基础设施中,出站请求通过NAT网关访问公网,无需额外配置。需要注意的是,如果目标IP有白名单限制,SCF的出站IP是动态的(弹性公网IP池),不适合配置白名单——这种情况建议改用固定IP的CVM做中转。