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 函数创建过程及云函数控制台基本操作。

前提条件

在使用腾讯云云函数之前,您需要 注册腾讯云账号 并完成 实名认证

操作步骤

通过模版创建函数

1. 登录 Serverless 控制台,单击左侧导航栏的函数服务
2. 在主界面上方选择期望创建函数的地域,并单击新建,进入函数创建流程。
3. 选择使用模版创建来新建函数,在搜索框里筛选 WebFunc,筛选所有 Web 函数模版,选择您想使用的模版,点击“下一步”。如下图所示:


4. 在“配置”页面,您可以查看模版项目的具体配置信息并进行修改。
5. 单击完成,即可创建函数。 函数创建完成后,您可在“函数管理”页面,查看 Web 函数的基本信息,并通过 API 网关生成的访问路径 URL 进行访问。

自定义创建函数

1. 登录 Serverless 控制台,单击左侧导航栏的函数服务
2. 在主界面上方选择期望创建函数的地域,并单击新建,进入函数创建流程。
3. 选择使用自定义创建来新建函数,并填写函数基础配置,如下图所示:


函数类型:选择 “Web 函数”。
函数名称:填写您自己的函数名称。
地域:填写您的函数部署地域。
部署方式:选择“代码部署”。
运行环境:此处以 Nodejs 框架为例,选择 “Nodejs 12.16”。
4. 在"高级配置"中,查看其它必填配置项。
命名空间:默认为 default,您也可以选择其它空间部署。
启动命令:对于 Web 函数,您必须为您的项目配置 scf_bootstrap 启动文件,保证 Web Server 在函数环境中可以正常启动。您可以选择 SCF 为您提供的默认框架模版,也可以使用自定义模版,编写您自己的启动命令。详情可参见 启动文件说明
5. 在"触发器配置"中,触发器目前只支持 API 网关触发,将自动按照默认配置创建触发器。


6. 单击完成,即可创建函数。 函数创建完成后,您可在“函数管理”页面,查看 Web 函数的基本信息,并通过 API 网关生成的访问路径 URL 进行访问。

云端测试

方式1
方式2
方式3
您可以在浏览器里打开该访问路径 URL,如果可以正常访问,则说明函数创建成功。
您可以在函数代码页面,通过测试能力,拼装指定的 HTTP 请求进行测试,通过 HTTP 响应结果查看函数是否部署成功。
注意:
控制台测试通过网关 API 接口进行测试调用,如果失败,API 侧会自动执行重试逻辑,最多重试4次,因此您的一次失败请求会看到多条执行日志。
您可以使用其他 HTTP 测试工具,如 CURL、POSTMAN 等测试您已创建成功的 Web 函数。

查看日志

Web 函数场景下,各个请求的返回 Body 信息不会自动上报到日志,您可以根据自己的开发语言,通过console.log()print() 等语句,在代码里自定义上报。
对于 PHP,由于所有的输入会自动作为返回体,您需要执行以下命令,将日志输出到 stdout 中,完成日志上报:
<?php
$stdout = fopen("php://stderr","w");
fwrite($stdout,"123\\n");
?>
在已创建函数的详情页面,选择日志查询,即可查看函数详细日志。详情可参见 查看运行日志

查看监控

在已创建函数的详情页面,选择监控信息,即可查看函数调用次数、运行时间等情况。详情可参见 监控指标说明
注意:
监控统计的粒度最小为1分钟。您需要等待1分钟后,才可查看当次的监控记录。

常见错误码解决方法

常见错误分为用户错误与平台错误两种类型:
用户错误:用户操作不当导致的运行失败,例如发送的请求不符合标准、启动文件命令写错、未监听正确端口、内部业务代码写错等,返回错误码为4xx。
平台错误:由于函数平台内部错误导致的运行失败,错误码为500。
下表描述了请求错误和函数错误可能出现的场景,以便您迅速排查问题。更多错误码详情可参见 云函数状态码

2xx状态码

状态码
返回信息
说明
200
Success
函数执行成功,如果看到该返回码,但返回信息与预期不符,请检查您代码逻辑是否正确

4xx状态码

状态码
返回信息
说明
404
InvalidSubnetID
当函数执行执调用时子网 id 错误时,会有该返回信息,请检查函数的网络配置信息是否正确以及子网 id 是否有效。
405
ContainerStateExitedByUser
容器进程正常退出,请检查您的启动文件是否编写正确。
406
RequestTooLarge
函数调用请求参数体太大时,会有该返回信息,同步请求事件最大为6MB。
410
The HTTP response body exceeds the size limit.
函数返回 Body 过大,超出6MB限制,请调整函数返回值大小后重试。
430
User code exception caught
当用户代码执行出现错误时,会有该返回信息,可以根据控制台的错误日志,查看代码错误堆栈信息,检查代码是否能正常执行。
433
TimeLimitReached
当函数执行时间超出超时配置,会有该返回信息,请检查业务代码是否有大量耗时处理操作,或在函数配置页调整执行超时时间。
439
User process exit when running
当函数执行时用户进程意外退出时,会有该返回信息,可根据返回错误信息查询进程退出原因修复函数代码。
446
PortBindingFailed
未监听指定端口,请检查您的业务代码是否监听9000端口。
499
kRequestCanceled
用户手动中断请求。

5xx状态码

状态码
返回信息
说明
500
InternalError
内部错误,请稍后重试。若仍无法解决,请 提交工单

本地调试注意事项

在本地容器调试时,为了保证和云上标准容器环境一致,需注意本地环境内的可读写文件限制。本地容器启动命令可参考如下命令:
docker run -ti --read-only -w /var/user \\
-v /usr/local/cloudfunction/runtime:/var/runtime:ro \\
-v ${PWD}:/var/user:ro \\
-v /tmp:/tmp \\
-v /usr/local/cloudfunction/runtime:/var/runtime:ro \\
-v /usr/local/cloudfunction/lang:/var/lang:ro \\
ccr.ccs.tencentyun.com/cloudfunc/qcloud-func bash


帮助和支持

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

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

文档反馈