函数是云函数 SCF 管理、运行的基本单元,通常由一系列配置与一系列可运行代码/软件包组成。您可以通过 API 触发函数运行,还可以通过不同的触发器向函数传递不同的事件触发函数运行并对事件进行处理。
函数相关概念
地域
命名空间
函数名称
函数名称为函数的唯一标识,同一个命名空间下的函数名称不可重复,创建后不可修改。
函数类型
SCF 支持
event
函数和 Web
函数两种函数类型。event 函数由指定格式的事件触发,例如定时触发事件、COS 触发事件等,事件结构详情见 触发器。
Web 函数专注于优化 Web 服务场景,可以直接接受并处理 HTTP 请求,详情见 Web 函数。
时区
云函数内默认使用 UTC 时间,您可以通过配置环境变量 TZ 修改。在您选择时区后,将自动添加对应时区的 TZ 环境变量。
运行环境
函数执行方法
执行方法表明了调用云函数时需要从哪个文件中的哪个函数开始执行,可分为以下三种方式:
一段式格式为 "[文件名]" ,支持 Golang 环境时使用,例如 "main"。
两段式格式为 "[文件名].[函数名]" ,支持 Python、Node.js 及 PHP 环境时使用,例如 "index.main_handler"。
说明
两段式的执行方法中,前一段指向代码包中不包含后缀的文件名,后一段指向文件中的入口函数名。需确保代码包中的文件名后缀与语言环境匹配,例如 Python 环境为
.py
文件,Node.js 环境为 .js
文件。 三段式格式为 "[package].[class]::[method]",支持 Java 环境时使用,例如 "example.Hello::mainHandler"。
函数描述
可用于记录函数相关作用等信息。
函数相关配置
资源类型
函数支持算力包含 CPU、GPU。
资源规格
初始化超时时间
指定函数初始化阶段最长运行时间,可选值范围为3-300秒,镜像部署函数默认90秒,其他函数默认60秒。
注意
函数初始化阶段包括准备函数代码、准备镜像、准备层等相关资源以及执行函数主流程代码。如果您的函数具有较大的镜像或复杂的函数主流程业务逻辑,请适当调大初始化超时时间。
初始化超时时间仅在触发实例冷启动调用的场景下生效。
客户端的等待时间建议稍大于初始化超时时间与执行超时时间的和。
执行超时时间
指定函数的最长运行时间,可选值范围为1秒- 900秒,默认3秒。
环境变量
运行角色
日志配置
网络配置
公网访问:默认启用,关闭后函数无法访问公网资源。
固定出口 IP:启用后平台将为函数分配一个固定的公网出口 IP。
私有网络:启用后,函数可以访问同一个私有网络下的资源。
文件系统
执行配置
异步执行:启用后,函数执行超时时间最大可支持 24 小时,函数创建后该配置无法修改。
链路追踪:仅在异步执行启用的情况下可开启,开启后针对异步执行的事件,将开始记录响应事件的实时状态,并提供事件的统计、查询及终止服务,产生的事件状态数据将为您保留3天。
异步调用配置
应用性能观测
DNS 配置
在云函数的使用场景下,域名解析延时有可能导致函数执行超时失败,影响正常的业务逻辑;在函数高频调用的情况下,有可能导致 DNS 服务器解析超出频率限制,同样导致函数执行失败。云函数提供了 DNS 缓存配置来解决上述问题。DNS 缓存可以提升域名解析效率,缓解网络抖动等因素对域名解析成功率的影响。详情见 DNS 缓存配置。
函数可执行的操作
创建函数:创建一个新的函数。
更新函数:
更新函数配置:更新函数的各项配置。
更新函数代码:更新函数的运行代码。
获取详情:获取函数配置、触发器及代码详情。
测试运行函数:根据需要,通过同步或异步方法触发函数运行。
获取日志:获取函数运行情况及输出的日志。
删除函数:删除不再需要的函数。
复制函数:复制函数到指定的地域、指定的名称、指定的配置。
函数的触发器相关操作有:
创建触发器:创建一个新的触发器。
删除触发器:删除已有触发器。
启停触发器:通过设置触发器启动或停止来临时停止云函数被事件源所发生的事件触发。