函数计算的资源调度与运行以函数为单位。函数必须从属于服务,同一个服务下可以创建多个函数,这些函数共享一些相同的设置,例如服务授权和日志配置等。但这些函数彼此相互独立,互不影响。本文介绍函数的属性和运行环境,以及如何通过函数计算控制台创建函数、更新函数、获取函数ARN等。

函数计算支持的函数运行环境列表

运行环境说明文档链接
Node.js 6Node.js 6版本Node.js运行环境
Node.js 8Node.js 8版本
Node.js 10Node.js 10版本
Node.js 12Node.js 12版本
Node.js 14Node.js 14版本
Node.js 16Node.js 16版本
Python 2.7Python 2.7版本Python运行环境
Python 3Python 3.6版本
Python 3.9Python 3.9版本
PHP 7.2PHP 7.2.7版本PHP运行环境
Java 11Java 11版本Java运行环境
Java 8Java 8版本
.NET Core 2.1.NET Core 2.1版本.NET Core运行环境
.NET Core 3.1.NET Core 3.1版本
Go 1.xGo 1.8或以上版本Go运行环境
Custom RuntimeCustom Runtime运行环境
Custom ContainerCustom Container运行环境

前提条件

已创建服务

创建函数

  1. 登录函数计算控制台,在左侧导航栏,单击服务及函数
  2. 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
  3. 函数管理页面,单击创建函数
  4. 创建函数页面,按需选择创建函数的方式,配置以下配置项,然后单击创建
    说明 本文以使用内置运行时创建使用自定义运行时创建方式为例进行说明。如果函数计算提供的环境无法满足您的业务需求,您可以使用容器镜像创建方式部署函数。具体操作,请参见创建Custom Container函数
    • 基本设置:配置函数的基本信息,包括函数名称和请求处理程序类型。请求处理程序类型包括以下两种。
      • 处理事件请求:通过定时器、调用API/SDK或其他阿里云服务的触发器来触发函数执行。
      • 处理 HTTP 请求:用于处理HTTP请求或Websocket请求的函数。如果您的使用场景是Web场景,建议您使用自定义运行时创建
    • 函数代码:配置函数的运行环境和代码相关信息。
      配置项说明
      运行环境选择您熟悉的语言,例如Python、Java、PHP或Node.js等。函数计算支持的运行环境,请参见函数计算支持的函数运行环境列表
      代码上传方式选择上传函数代码到函数计算的方式。
      • 使用示例代码:默认方式,您可以根据业务需要选择函数计算为您提供的创建函数的示例代码。
      • 通过 ZIP 包上传代码:选择函数代码ZIP包并上传。
      • 通过 JAR 包上传代码:选择函数代码JAR包并上传。
      • 通过文件夹上传代码:选择包含函数代码的文件夹并上传。
      • 通过 OSS 上传代码:选择上传函数代码的Bucket 名称文件名称
      说明运行环境选择为Java 8Java 11时,只支持使用示例代码通过 JAR 包上传代码通过 OSS 上传代码。其余运行环境支持使用示例代码通过 ZIP 包上传代码通过文件夹上传代码通过 OSS 上传代码
      启动命令
      说明 仅当您选择使用自定义运行时创建函数时,需设置此配置项。
      程序的启动命令。如果不配置启动命令,您需要在代码的根目录手动创建一个名称为bootstrap的启动脚本,您的程序通过此脚本来启动。
      监听端口
      说明 仅当您选择使用自定义运行时创建函数时,需设置此配置项。
      您的代码中的HTTP Server所监听的端口。
    • 高级配置:配置函数的实例相关信息和函数执行超时时间等。
      配置项说明
      规格方案根据您的业务情况,选择或手动输入合理的vCPU规格内存规格组合。关于各资源使用的计费详情,请参见计费概述
      说明
      • vCPU大小(单位为核)与内存大小(单位为GB)的比例必须设置在1∶1到1∶4之间。
      • 存量迁移场景下,函数计算支持按照2∶3的比例抵扣vCPU和内存,即1 GB-秒=0.66 vCPU*秒+1 GB*秒。2022年11月03日之后,函数计算支持根据业务需求灵活配比。但vCPU的值必须以0.05核为阶梯递增,原折算比例中0.66 vCPU*秒的取值将不再适用,您可以选择0.60 vCPU*秒或0.65 vCPU*秒等。
      硬盘大小根据您的业务情况,选择磁盘大小。
      取值说明如下。
      • 512 MB:默认值。不计费,函数计算为您提供512 MB以内的磁盘免费使用额度。
      • 10 GB:按9.5GB进行计费。
      实例并发度设置函数实例的并发度。具体信息,请参见设置实例并发度
      执行超时时间设置超时时间。执行超时时间默认为60秒,最长为86400秒。
      说明 超过设置的超时时间,函数将以执行失败结束。如需更长的超时时间限制,请加入钉钉用户群(钉钉群号11721331)申请。
      请求处理程序设置请求处理程序,函数计算的运行时会加载并调用您的请求处理程序处理请求。选择使用自定义运行时创建函数时,无需设置此配置项。
      时区选择函数的时区。此处设置函数的时区后,将自动为函数添加一条环境变量TZ,其值为您设置的目标时区。
    • 环境变量:设置函数运行环境中的环境变量。更多信息,请参见环境变量
    • 触发器配置:设置函数的触发器,您可以使用触发器触发函数执行。更多信息,请参见触发器管理

更新函数

  1. 登录函数计算控制台,在左侧导航栏,单击服务及函数
  2. 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
  3. 函数管理页面,单击目标函数操作列的配置
  4. 在编辑函数配置页面,按需修改相应的配置项,单击保存
    • 基础信息

      配置函数的基础信息。目前仅支持修改函数描述规格方案硬盘大小实例并发度

    • 环境信息

      配置函数的运行环境和其他关键配置项。更多信息,请参见创建函数

    • 其他配置
      配置项说明参考文档
      环境变量配置函数运行环境中的环境变量。环境变量
      实例生命周期回调配置函数实例的生命周期回调,包括初始化函数PreFreeze 函数PreStop 函数函数实例生命周期
      选择已创建的层名称和版本。层可以为您提供自定义的公共依赖库、运行时环境及函数扩展等发布与部署能力。创建自定义层
      DNS 配置配置自定义DNS,平台根据该配置生成resolv.conf在函数中配置自定义DNS
说明 您也可以根据提示删除不需要的函数。

获取函数ARN

资源ARN(Aliyun Resource Name)用于在代码中定位阿里云资源。您可以获取函数的ARN,便于引用函数。

  1. 登录函数计算控制台,在左侧导航栏,单击服务及函数
  2. 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
  3. 函数管理页面,单击需获取ARN的函数名称。
  4. 在函数详情页面,选择函数配置页签,在基础信息区域,查看并复制函数的ARN。

更多信息

除控制台外,函数计算还提供以下方式来管理函数。