更新时间:2024-11-11 GMT+08:00

创建事件函数

概述

函数是处理事件的自定义代码,您可以使用空白模板函数创建函数,根据实际业务场景进行函数配置。

由于FunctionGraph承担计算资源的管理工作,在函数完成编码以后,需要为函数设置运算资源等信息,目前主要是在FunctionGraph函数控制台完成。

创建函数时可以使用空模板,也可以使用示例模板创建函数使用容器镜像部署函数

使用空模板创建函数时,需要设置基础配置信息和代码信息,如表1所示,带*参数为必填项。

每个FunctionGraph函数都运行在其自己的环境中,有其自己的资源和文件系统。

前提条件

  1. 了解函数支持的编程语言,具体请参见支持的编程语言
  2. 创建程序包,具体请参见创建程序包
  3. 创建委托(可选,根据实际情况,确定是否需创建委托),具体请参见配置委托权限

操作步骤

  1. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 单击右上方的“创建函数”,进入“创建函数”页面。
  3. 选择“创建空白函数”,参见表1填写函数信息,带*参数为必填项。
    图1 创建空白函数
    表1 函数基础配置信息表

    参数

    说明

    *函数类型

    • 事件函数:通过触发器来触发函数执行。
    • HTTP函数:用户可以直接发送 HTTP 请求到 URL 触发函数执行。
      说明:
      • HTTP函数当前不区分编程语言,函数执行入口必须在bootstrap文件中设置,用户直接写启动命令,端口统一开放成8000。
      • HTTP函数只允许创建APIG/APIC的触发器类型,其他触发器不支持。
      • HTTP函数的使用说明请参见创建HTTP函数

    *区域

    选择要部署代码的区域。

    *函数名称

    函数名称,命名规则如下:

    • 可包含字母、数字、下划线和中划线,长度不超过60个字符。
    • 以大/小写字母开头,以字母或数字结尾。

    委托名称

    用户委托函数工作流服务去访问其他的云服务,则需要提供权限委托,创建委托,请参见配置委托权限

    如果用户函数不访问任何云服务,则不用提供委托名称。

    *企业项目

    选择已创建的企业项目,将函数添加至企业项目中,默认选择“default”。

    说明:

    如果您没有开通企业管理服务,将无法看到企业项目选项。开通方法请参见如何开通企业项目

    运行时

    选择用来编写函数的语言。

    须知:

    控制台代码编辑器仅支持Node.js、Python和PHP。

  4. 填写完成后单击“创建函数”,页面跳转至代码配置页面,继续配置代码源。

配置代码源

  1. 您可以根据所选的运行时语言Runtime,参见创建程序包,选择适合的方式进行代码源部署,完成后单击“部署”。

    以下图为例,运行时语言为“Node.js 10.16”,可以选择“在线编辑”、“Zip文件”、“OBS地址”三种方式进行代码源部署。

    图2 部署代码源

    当使用“OBS地址”方式进行代码源部署时,请确保创建函数选择的“区域”与创建OBS桶选择的“区域”一致。

  2. 代码若有修改,请修改完成后再次单击“部署”,重新部署代码。

查看代码信息

  1. 查看代码属性
    代码属性展示最新部署代码的大小及上次修改时间。
    图3 查看代码属性
  2. 查看基本信息

    函数创建完成后,各语言默认内存和执行超时时间如图4所示,请根据实际业务评估,若需修改“函数执行入口”、“内存(MB)”“执行超时时间(秒)”,可单击“编辑”,在常规设置中修改配置信息,具体请参见配置常规信息

    图4 编辑基本信息

    函数一旦创建,便不能修改运行时语言。

    表2 各语言默认基本信息

    Runtime

    默认基本信息

    JAVA

    内存(MB):512MB

    函数执行入口:com.demo.TriggerTests.apigTest

    执行超时时间(秒):15s

    Node.js

    内存(MB):128 MB

    函数执行入口:index.handler

    执行超时时间(秒):3s

    Custom

    内存(MB):128 MB

    函数执行入口:bootstrap

    执行超时时间(秒):3s

    PHP

    内存(MB):128 MB

    函数执行入口:index.handler

    执行超时时间(秒):3s

    Python

    内存(MB):128 MB

    函数执行入口:index.handler

    执行超时时间(秒):3s

    Go 1.x

    内存(MB):128 MB

    函数执行入口:handler

    执行超时时间(秒):3s