上云无忧 > 文档中心 > 百度智能云函数计算 CFC 开发者指南
函数计算CFC
百度智能云函数计算 CFC 开发者指南

文档简介:
您在使用CFC函数支持的语言编写CFC函数代码时,需要先了解以下基本概念。 调用CFC函数时,首先会寻找处理程序作为入口,执行用户代码。该处理程序在『函数代码』配置属性页面中『处理程序』属性进行设置,不同语言的函数的处理程序的命名方式稍有不同,您可点击"?"查看详细命名说明。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

基本概念

您在使用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
  • Python 2.7,Python 3.6
  • Java8
  • Golang
  • PHP 7.2
  • Lua 5.3
  • C#

注意事项

为了更好使用CFC函数计算服务,您可能还想了解如下信息。

  • 由于CFC函数的特点,您需要以无状态的风格编写函数代码,可在无状态函数页面了解更多详细信息。
  • 如果您对性能优化有较高要求,您还需要了解函数冷热启动机制,可在冷热启动机制文档了解相关注意事项,以便您能从自身业务代码层面优化达到更好性能表现。
  • 有关函数运行环境及安全隔离性的介绍,可见函数运行环境及安全隔离性文档
  • 有关时间戳与时区,详见时间戳和时区文档
相似文档
  • CFC函数内的时间戳为Unix时间戳(Unix timestamp),时间为UTC世界标准时间。如果您需要在函数内打印格式化时间,需要指定时区,例如 "Asia/Shanghai"。以下提供nodejs和python两种语言的示例代码,仅供参考:
  • CFC目前支持的运行环境有Node.js 10, Node.js 12, Python 2.7, Python 3.6, Java 8, Golang, PHP 7.2, Lua 4.3, .Net Core 2.2, PowerShell 6.2。 选择以上的运行环境运行CFC函数,各运行环境使用说明文档详见开发语言,如 Python。 运行环境中已经内置了常用的依赖, 可以直接在函数中引用。
  • 无状态服务即不对用户的数据做持久化的服务。函数计算服务就是典型的无状态服务,一旦用户长时间未进行函数调用,导致函数实例回收,那么之前代码产生的一些中间状态(临时变量、生成的本地文件等等)都会一起丢失。
  • ​ 由于函数在需要响应事件的容器中运行,因此存在一定的延时(启动容器和runtime的耗时)。这被称为”冷启动”。当你的函数执行完成后,你的容器可能会保留一段时间。如果另一个事件在此时被触发,则它的响应速度要快得多,这通常被称为”热启动”。
  • 本示例创建一个简单的echo函数,该函数将调用事件的内容回显出来。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部