概述
更新时间:2024-07-05
基本概念
您在使用CFC函数支持的语言编写CFC函数代码时,需要先了解以下基本概念。
函数入口
调用CFC函数时,首先会寻找处理程序作为入口,执行用户代码。该处理程序在『函数代码』配置属性页面中『处理程序』属性进行设置,不同语言的函数的处理程序的命名方式稍有不同,您可点击"?"查看详细命名说明。
- 对于node.js函数, 处理程序为您函数中的"module-name.export"值,例如,填写"index.handler"则表示调用的是index.js中的export.handler函。
- 对于python函数,处理程序为您函数中的filename.handler-method, 例如,填写index.handler则调用的是index.py文件的handler函数。
- 其他语言函数,您可以新建函数时选定开发语言后在代码编辑页面按照如上所述点击『?』查看具体命名方法。
函数入参
函数入参,是指函数在被触发调用时所传递给函数的内容。通常情况下,函数入参包括 event 入参和 context 入参两部分,但根据开发语言和环境的不同,入参个数可能有所不同,详见各语言函数开发指南。
- event入参:是一个event对象,它包含来自调用程序的信息,实现代码与触发函数的事件(event)交互,百度云CFC服务会将该event参数传递CFC函数,您编写CFC函数代码时可以从该event参数中获取信息。
- context入参:是一个上下文对象,该对象包含当前请求和运行环境的相关信息,比如当前调用的超时时间,内存限制和请求ID等。
关于函数入参,您还需了解:
- event入参和context入参均使用JSON格式统一封装。
- 不同触发器在触发函数时,传递的数据结构有所不同,详见各个触发器说明文档。
- 当CFC函数不需要任何输入时,您可以在代码中忽略event和context参数。
函数返回
CFC函数计算平台会获取到函数执行完成后的返回值, 并根据调用类型进行处理。 目前支持三种类型调用方式,分别是同步调用(RequestResponse)、异步调用(Event)、DryRun,其中RequestResponse方式为默认类型。
- 同步调用: 当您同步调用某个CFC函数时, 函数计算CFC会运行该函数, 等待函数执行完毕并将运行结果等数据作为响应一并返回给调用方。
- 异步调用:当您异步调用某个CFC函数时,函数计算CFC会将调用任务放到任务队列立即返回202返回码及一个requestID,您可以通过该ID查询调用结果。
- DryRun调用: 该调用方式主要用于测试。 有关更多调用函数API信息,可参考链接
异常处理
您可以按照语言特性在代码中进行异常处理,提升应用的健壮性,如显式抛出异常,CFC将捕捉这些异常并提示代码执行失败。
日志
函数调用的所有记录及函数代码的输出会存储在日志中,请使用各编程语言中的打印输出语句或者日志语句生成日志,便于调试和故障排除。如果您使用日志语句生成日志,请将日志文件修改为标准输出或标准错误即可。 如果您需要查看日志,详见查看日志。
开发流程
CFC函数的开发流程主要包括以下过程:
- 编写及调试代码:根据业务需求编写函数代码,CFC提供4种方式创建和管理您的函数,详见链接
- 打包:将业务代码及其依赖打包成zip格式,打包要求及各语言部署程序包打包说明参见链接
- 部署:使用API接口创建或更新函数,也可以在CFC控制台使用生成的zip文件创建或更新函数。
- 配置触发器(可选):如果您的函数需要被某些特定事件触发执行,则可以为函数配置对应的触发器。
- 执行函数:当触发器对应的事件发生时,函数将被调用执行,函数计算自动为其分配资源,无需您手动干预。
- 查看日志:在函数执行后,您可以在运行日志中查看函数的执行结果和监控数据。
开发语言
目前CFC支持以下开发语言,您可以根据不同开发语言特性编写应用代码,点击链接查看各语言的开发指南示例示例
- Node.js 8.5,Node.js 10,Node.js 12,Node.js 14,Node.js 16
- Python 2.7,Python 3.6,Python 3.10
- Java8
- Golang
- PHP 7.2
- Lua 5.3
- C#
注意事项
为了更好使用CFC函数计算服务,您可能还想了解如下信息。
- 由于CFC函数的特点,您需要以无状态的风格编写函数代码,可在无状态函数页面了解更多详细信息。
- 如果您对性能优化有较高要求,您还需要了解函数冷热启动机制,可在冷热启动机制文档了解相关注意事项,以便您能从自身业务代码层面优化达到更好性能表现。
- 有关函数运行环境及安全隔离性的介绍,可见函数运行环境及安全隔离性文档
- 有关时间戳与时区,详见时间戳和时区文档