操作场景
本文介绍如何快速创建一个 Web 函数,您可通过本文了解 Web 函数创建过程及云函数控制台基本操作。
前提条件
操作步骤
通过模版创建函数
2. 在主界面上方选择期望创建函数的地域,并单击新建,进入函数创建流程。
3. 选择使用模版创建来新建函数,在搜索框里筛选 WebFunc
,筛选所有 Web 函数模版,选择您想使用的模版,点击“下一步”。如下图所示:
4. 在“配置”页面,您可以查看模版项目的具体配置信息并进行修改。
5. 单击完成,即可创建函数。
函数创建完成后,您可在“函数管理”页面,查看 Web 函数的基本信息,并通过 API 网关生成的访问路径 URL 进行访问。
自定义创建函数
2. 在主界面上方选择期望创建函数的地域,并单击新建,进入函数创建流程。
3. 选择使用自定义创建来新建函数,并填写函数基础配置,如下图所示:
函数类型:选择 “Web 函数”。
函数名称:填写您自己的函数名称。
地域:填写您的函数部署地域。
部署方式:选择“代码部署”。
运行环境:此处以 Nodejs 框架为例,选择 “Nodejs 12.16”。
4. 在"高级配置"中,查看其它必填配置项。
命名空间:默认为 default,您也可以选择其它空间部署。
启动命令:对于 Web 函数,您必须为您的项目配置 scf_bootstrap 启动文件,保证 Web Server 在函数环境中可以正常启动。您可以选择 SCF 为您提供的默认框架模版,也可以使用自定义模版,编写您自己的启动命令。详情可参见 启动文件说明。 5. 在"触发器配置"中,触发器目前只支持 API 网关触发,将自动按照默认配置创建触发器。
6. 单击完成,即可创建函数。
函数创建完成后,您可在“函数管理”页面,查看 Web 函数的基本信息,并通过 API 网关生成的访问路径 URL 进行访问。
云端测试
您可以在浏览器里打开该访问路径 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状态码
|
| | 函数执行成功,如果看到该返回码,但返回信息与预期不符,请检查您代码逻辑是否正确 |
4xx状态码
|
| | 当函数执行执调用时子网 id 错误时,会有该返回信息,请检查函数的网络配置信息是否正确以及子网 id 是否有效。 |
| ContainerStateExitedByUser | 容器进程正常退出,请检查您的启动文件是否编写正确。 |
| | 函数调用请求参数体太大时,会有该返回信息,同步请求事件最大为6MB。 |
| The HTTP response body exceeds the size limit. | 函数返回 Body 过大,超出6MB限制,请调整函数返回值大小后重试。 |
| User code exception caught | 当用户代码执行出现错误时,会有该返回信息,可以根据控制台的错误日志,查看代码错误堆栈信息,检查代码是否能正常执行。 |
| | 当函数执行时间超出超时配置,会有该返回信息,请检查业务代码是否有大量耗时处理操作,或在函数配置页调整执行超时时间。 |
| User process exit when running | 当函数执行时用户进程意外退出时,会有该返回信息,可根据返回错误信息查询进程退出原因修复函数代码。 |
| | 未监听指定端口,请检查您的业务代码是否监听9000 端口。 |
| | |
5xx状态码
|
| | 内部错误,请稍后重试。若仍无法解决,请 提交工单。 |
本地调试注意事项
在本地容器调试时,为了保证和云上标准容器环境一致,需注意本地环境内的可读写文件限制。本地容器启动命令可参考如下命令:
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
本页内容是否解决了您的问题?