创建云函数

最近更新时间:2018-08-28 15:45:14

用户在打包应用服务代码及相关依赖并将其上传到腾讯云云函数后,就创建了一个 SCF 云函数。云函数包含了用户上传的代码及依赖,以及一些与运行关联的配置信息。本文档将介绍云函数的具体配置及相关意义,帮助用户了解如何构建适合自身业务的云函数。

函数名称

腾讯云通过函数名称来唯一标识用户单个地域下的 SCF 云函数,函数名在函数创建后不可修改。函数名称应遵循以下规则:

  • 长度在 60 个字符以内
  • 只得包括a-z,A-Z,0-9,-,_
  • 必须以字母为开头

地域

用户指定 SCF 云函数运行在哪个地域中,当前支持北京、上海、广州、成都地域。云函数将自动在地域内的多个可用区进行高可用的部署。在函数创建后,地域属性不可更改。

计算资源

腾讯云支持用户自行定义 SCF 云函数分配的内存量,可从 128MB - 1536MB的区间中以 128 MB 为增量。腾讯云将自动根据用户指定的内存为 SCF 函数自动分配成比例的 CPU 处理能力。例如:如果为 SCF 函数分配 1024 MB 内存,则函数获得的 CPU 将是分配 512 MB 内存时的 两倍。因此,在常规场景下,提高函数的内存量通常能使代码实际运算的时间相对减少。

用户可以随时更改云函数所需的内存量,强烈建议您在测试时发现云函数运行消耗的内存已经接近或达到设置的内存量时提高此参数,避免函数内部因为 OOM 出错。

超时时间

云函数根据运行时间和请求次数收费,为了防止云函数无限期运行(如代码中出现死循环时),每个云函数都有一个用户可自定义的超时时间,当前最大超时时间为 300 秒,默认设置为 3 秒。在达到超时时间时,若云函数仍在运行,则 SCF 平台将自动终止该函数。

用户可以随时更改云函数的超时时间,强烈建议您在测试时发现函数运行超时或实际运行时间已经接近超时时间时提高此参数,避免函数执行时间过长被超时时间限制而中断。

描述

用户可为函数设置及随时更改描述信息。

函数代码上传方式

目前函数代码支持【在线编辑】、【本地上传 zip 包】、【通过 COS 上传 zip 包】三种方式。

在线编辑

可通过控制台的文件编辑窗口,直接修改入口文件的代码。通过【本地上传 zip 包】、【通过 COS 上传 zip 包】这两种方式上传的代码包,在上传成功后同样可以编辑入口文件,而不影响其他的库或引用文件。

本地上传 zip 包

通过控制台的上传接口,可以直接选择已经打为 zip 格式的函数代码包并上传。通过此方式上传的 zip 格式代码包,要求大小不得超过 5 M。更大体积的 zip 包,可通过【通过 COS 上传 zip 包】的方式提交。

通过 COS 上传 zip 包

通过 COS 上传 zip 包,是先将 zip 包上传至同地域的某个 COS Bucket 中,然后在创建或修改云函数时,通过指明 Bucket 及文件位置,实现 zip 包提交至云函数平台。使用 COS 上传 zip 包需要填写两项信息:COS Bucket 及 zip 文件路径。

  • COS Bucket:仅可以选择与函数在相同地域的 COS Bucket。通过下拉列表,选择 zip 包所在的 Bucket。
  • COS 对象文件:zip 包在 COS Bucket 内的路径及文件名,以根目录 / 为起始。例如,根目录下的 test.zip 文件,应写为 /test.zip;根目录下创建了 functioncode 文件夹后,在文件夹里放置的 test.zip 文件,应写为 /functioncode/test.zip

执行方法

执行方法表明了调用的函数应该是哪个文件的哪个函数。执行方法通常写为 index.main_handler,指向的是 index 文件内的 main_handler 函数方法。执行方法可以根据实际文件名和函数名修改。

执行方法的前一段标明为文件名,例如 index ,在 Python 环境下,指的是代码包根目录下的 index.py 文件,在 Node.js 环境下,指的是 index.js 文件,在 PHP 环境下,指的是 index.php 文件。请确保文件名后缀与运行环境可以对应。

执行方法的后一段标明为函数名,例如 main_handler ,指向文件内的 main_handler 函数。云函数在触发时,将首先调用此函数,并将 event 及 context 参数传递给函数。具体函数写法及入参相关信息,可见各开发语言的说明。