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

前提条件

创建服务

支持的函数运行环境列表

运行环境 说明 文档链接
Node.js 6.x Node.js 6.x版本 Node.js运行环境
Node.js 8.x Node.js 8.x版本
Node.js 10.x Node.js 10.x版本
Node.js 12.x Node.js 12.x版本
Node.js 14.x Node.js 14.x版本
Python 2.7 Python 2.7版本 Python运行环境
Python 3 Python 3.6版本
PHP 7.2 PHP 7.2.7版本 PHP运行环境
Java 11 Java 11版本 Java运行环境
Java 8 Java 8版本
.NET Core 2.1 .NET Core 2.1版本 .NET Core运行环境
Go 1.x Go 1.8或以上版本 Go入门概述
Custom Runtime Custom Runtime运行环境
Custom Container Custom Container运行环境

创建函数

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,单击目标服务。
  5. 函数管理页面,单击创建函数
  6. 创建函数页面,按需选择创建函数的方式。
    本文以从零开始创建为例。更多信息,请参见以下文档:
  7. 基本设置区域,填写相关参数,然后单击创建sc_create_function_v2.png
    参数说明如下所示。
    参数 是否必填 操作 示例值
    名称 填写自定义的函数名称。必须以字母开头,可包含数字、字母(区分大小写)、下划线(_)和短划线(-),不超过64个字符。
    说明 如果不填写名称,函数计算会自动为您创建。
    Function
    运行环境 选择您熟悉的语言,例如Python、Java、PHP、Node.js等。函数计算支持的运行环境,请参见函数简介 Node.JS 12.x
    函数触发方式 选择函数触发方式。
    • 通过事件触发:通过定时器和其他阿里云服务的触发器来触发函数执行。
    • 通过HTTP请求触发:通过发送HTTP请求触发函数执行,适用于快速构建Web服务等场景。
    通过事件触发
    实例类型 选择适合您的实例类型。
    • 弹性实例
    • 性能实例
    更多信息,请参见实例规格及使用模式
    弹性实例
    内存规格 设置函数执行内存。
    • 选择输入:在下拉列表中选择所需内存。
    • 手动输入:单击手动输入内存大小,可自定义函数执行内存。内存规格说明如下:
      • 弹性实例:取值范围[128, 3072],单位为MB。
      • 性能实例:取值范围[4, 32],单位为GB。
      说明 输入的内存必须为64 MB的倍数。
    512 MB
    函数创建完成后,在函数管理页面,即可查看已创建的函数。pg_view_function

获取函数ARN

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,单击目标服务。
  5. 函数管理页面,单击目标函数名称。
  6. 在函数详情页面的函数概览区域,复制函数ARN。
    资源ARN(Aliyun Resource Name)可用于在代码中定位阿里云资源。

更新函数

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,单击目标服务。
  5. 函数管理页面,单击目标函数操作列的配置
  6. 在编辑函数配置页面,按需修改相应的参数,单击保存
    参数说明如下。pg_edit_function_config
    • 基础信息
      参数 是否必填 说明 示例值
      描述 自定义的服务描述。 Description
      实例类型 选择适合您的实例类型。
      • 弹性实例
      • 性能实例
      更多信息,请参见实例规格及使用模式
      弹性实例
      内存规格 设置函数执行内存。
      • 选择输入:在下拉列表中选择所需内存。
      • 手动输入:单击手动输入内存大小,可自定义函数执行内存。内存规格说明如下:
        • 弹性实例:取值范围[128, 3072],单位为MB。
        • 性能实例:取值范围[4, 32],单位为GB。
        说明 输入的内存必须为64 MB的倍数。
      512 MB
      注意 实例类型的修改遵循以下原则:
      • 支持弹性实例性能实例互相修改。
      • 从性能实例修改为弹性实例时,即从高配置到低配置的降低实例规格,系统会检测切换的风险,同时内存规格会自动降配。
    • 环境信息
      参数 是否必填 说明 示例值
      运行环境 选择您熟悉的语言,例如Python、Java、PHP、Node.js等。函数计算支持的运行环境,请参见函数简介 Node.JS 12.x
      函数入口 填写函数入口。格式为[文件名].[函数名]。 index.handler
      执行超时时间 设置超时时间。默认为60秒,最长为900秒。
      说明 超过设置的超时时间,函数将以执行失败结束。如需更长的时间限制,请提交工单
      60
      单实例并发数 单个实例能够并发处理的请求数。更多信息,请参见单实例多并发简介
      注意 Python语言不支持设置实例并发度。
      1
    • 生命周期函数
      参数 是否必填 说明 示例值
      初始化函数 初始化函数,保证在同一实例中执行且成功执行一次。格式为[文件名].[函数名]。 index.handler
      初始化函数超时时间 设置超时时间。默认为3秒,最大值为300秒。 3
      PreFreeze函数 在每次函数计算服务决定冷冻当前函数实例前,您希望函数计算调用的函数。格式为[文件名].[函数名]。 index.preFreeze
      PreFreeze函数超时时间 设置超时时间。默认为3秒,最大值为300秒。 3
      PreStop函数 在每次函数计算决定停止当前函数实例前,您希望函数计算调用的函数。格式为[文件名].[函数名]。 index.preStop
      PreStop函数超时时间 设置超时时间。默认为3秒,最大值为300秒。 3
    • 区域单击+添加配置,在层名称层版本下拉列表选择所需的配置,然后单击保存

      更多信息,请参见在函数中使用层

      注意 1个函数最多可以选择5个层。
    • 环境变量
      • 使用表单编辑(默认方式)
        1. 单击+添加变量
        2. 配置环境变量的键值对:
          • :自定义。
          • :自定义。
      • 使用JSON格式编辑
        1. 单击使用JSON格式编辑
        2. 在文本框内,输入对应的JSON格式的键值对,格式如下:
          {
              "key": "value"
          }

      更多信息,请参见环境变量

删除函数

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,单击目标服务。
  5. 函数管理页面找到目标函数,单击操作列的删除
  6. 删除函数。
    • 未配置或已删除触发器:在弹出的对话框单击删除db_delete_function_without_trigger
    • 已配置触发器:在弹出的对话框中,选中我确认要删除以上触发器,并同时删除此函数。复选框,然后单击删除db_delete_function_with_trigger

更多信息

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