
# 创建事件函数
创建函数是在FunctionGraph业务使用流程中的第一步操作，如需通过云产品事件触发函数执行特定任务，可创建事件函数，并根据业务需求完成函数代码、网络配置及函数触发器等必要配置。本章节介绍如何通过控制台创建事件函数。
FunctionGraph支持创建空白事件函数和HTTP函数，关于事件函数与HTTP函数的选型对比请参考[表1]。
 表1事件函数与HTTP函数选型对比 
| 对比项  | 事件函数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | HTTP函数                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| 功能   | 用于处理文件和数据流，可以通过[各类云产品的事件触发](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0399.html)，以及用于处理异步请求，能够追踪并保存每个异步调用的状态。                                                                                                                                                                                                                                                                                                                                           | 支持流行的Web应用框架和AI项目，可以通过浏览器访问，或通过URL调用。                                                                                                                                                                                                                                                                                                                                                                                        |
| 适用场景 | - 云产品集成： OBS实时文件处理、LTS日志加工等。  - ETL数据加工：数据库数据清洗、消息队列处理等。  - 常规任务：定时任务、周期任务、脚本任务等。  - 多媒体处理：音视频转码、直播录制、图片加工等。   | - 快速构建流行Web框架应用：Express、Flask等。  - 快速构建AI模型推理服务：如Stable Diffusion、ComfyUI、DeepSeek等。  - 迁移已有的应用和接口：HTML5网站、REST API接口、移动APP、小程序、游戏结算等。   |
   
#### 操作视频
本视频介绍使用空白模板创建函数，并测试函数能否正常运行。
因产品功能演进，操作界面可能存在差异，相关视频仅供参考，具体以实际环境为准。
<video controls="controls" preload="none" id="object6690172041315" class="idp-external-video" src="https://res-static.hc-cdn.cn/cloudbu-site/china/zh-cn/support/functiongraph-video/1751250395149222398.mp4" title="使用空白模板创建函数" poster="https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002382801849.jpg" style="width:100%;height:auto;max-width:600px"></video>
#### 约束与限制
单个账户下最大允许创建的函数个数默认为400个，如需扩大配额请[提交工单](https://console.huaweicloud.com/ticket/?agencyId=e4ebeeb18baa4ae58946b5342fa6159d#/ticketindex/createIndex)。
#### 前提条件
- 使用函数工作流控制台的所有操作均默认具有操作权限，请确保您登录的用户已有"FunctionGraph Administrator"权限，即FunctionGraph服务所有权限，更多权限的说明请参考[权限管理](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0160.html)。
- 如果函数工作流服务需要访问云日志服务LTS、虚拟私有云VPC等其他云服务进行协同工作，则需[创建函数委托](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.html#functiongraph_01_0920__section17872123319473)并授权函数工作流服务访问所需云服务的权限；若函数工作流服务无需访问其他云服务，则无需创建和选择函数委托。
- 如果需要配置函数工作流服务访问VPC内资源，请参考[创建虚拟私有云和子网](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013935842.html)创建VPC和子网。
 
#### 创建事件函数
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?locale=zh-cn)，在左侧的导航栏选择"函数 \> 函数列表"。
2. 单击右上方的"创建函数"，进入"创建函数"页面。
3. 如[图1]所示，创建方式选择"创建空白函数"，参考[表2]配置函数基本信息，参考[表3]配置函数高级设置参数。
   
   图1函数基础信息   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002299735253.png "点击放大")
    表2创建函数基础信息参数说明 
   | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 取值样例                                                                  |
   |:---|:---|:---|
   | 函数类型   | 选择事件函数。 事件函数为可通过特定事件触发的函数，通常为JSON格式的请求事件。                                                                                                                                                                                                                                                                                                                                                                                                                                      | 事件函数                                                                  |
   | 区域     | 选择函数所在的区域。 不同区域的资源之间内网不互通，请就近选择靠近您业务的区域，可以降低网络时延、提高访问速度。                                                                                                                                                                                                                                                                                                                                                                                                                    | 华东-上海一                                                                |
   | 函数名称   | 输入自定义的函数名称，命名规则如下： - 可包含字母、数字、下划线和中划线，长度不超过60个字符。  - 以大/小写字母开头，以字母或数字结尾。                                                                                                                                                                                    | FG-demo                                                               |
   | 企业项目   | 选择函数所属的企业项目。企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。 默认为"default"，支持用户选择已创建的企业项目。 **如果您没有开通企业管理服务，将无法看到企业项目选项。开通方法请参见[如何开通企业项目](https://support.huaweicloud.com/usermanual-em/eps_15_0001.html)。**                                                                                                                                                                                                                   | default                                                               |
   | 委托     | 选择函数的委托。通过委托来授权函数工作流来访问其他云服务，若函数不访问任何云服务，则无需选择委托。 默认"未使用任何委托"，支持选择已创建的委托。 当华为云账号下无函数默认委托时，FunctionGraph提供快速创建默认委托"fgs_default_agency"的功能，详情请参见[默认委托](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.html#functiongraph_01_0920__section102217211358)。                                                                                                                                              | fgs_default_agency                                                    |
   | 委托权限策略 | **此参数仅在选择使用委托时显示。** 选定委托后将展示该委托关联的权限策略，如需调整权限策略，请参考[修改函数委托](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.html#functiongraph_01_0920__section17979205025313)通过IAM控制台进行操作。                                                                                                                                                                                                                                                                  | DIS User; SWR Admin; fgs_default_region_role; fgs_default_global_role |
   | 运行时    | 选择编写函数的运行时语言。 FunctionGraph支持的运行时语言请参考[FunctionGraph支持的运行时语言](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0151.html)。 - 控制台代码编辑器仅支持在线编辑Node.js、Python、PHP和定制运行时。  - 函数成功创建后，不支持修改运行时语言。   | Node.js 16.17                                                         |
      
   图2创建函数高级设置参数说明   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002477970888.png "点击放大")
   
    表3创建函数高级设置参数说明 
   | 参数         | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 取值样例                      |
   |:---|:---|:---|
   | 函数访问公网     | 开启时，函数可以通过默认网卡访问公网上的服务，其公网访问带宽为用户间共享，仅适用于测试场景。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 开启                        |
   | 函数访问VPC内资源 | **开启此参数需要函数配置包含VPC管理权限的委托，若基本信息的委托中选择"未使用任何委托"则无法开启。** 开启时，函数将使用配置的VPC所绑定的网卡进行网络访问，同时禁用函数工作流的默认网卡，即开关"函数访问公网"参数将不生效。 开启后可选择函数需访问的VPC及其子网。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 未开启                       |
   | 日志记录       | 启用日志功能后，函数运行过程中产生的日志会上报到云日志服务（LTS）。 注意： LTS将按需收取日志管理费用，详情请参见[云日志服务价格详情](https://www.huaweicloud.com/pricing/calculator.html#/lts)。 开启后可配置以下参数： - 日志配置方式 - 自动配置：使用默认日志组和日志流。  - 自定义配置：选择自定义创建的[日志组](https://support.huaweicloud.com/usermanual-lts/lts_04_0003.html)和[日志流](https://support.huaweicloud.com/usermanual-lts/lts_04_0004.html)。    - 日志标签 函数执行时，会将日志标签配置上报到LTS，可通过标签在LTS控制台对函数日志进行过滤筛选，日志标签详情请参见[日志管理](https://support.huaweicloud.com/usermanual-lts/lts_04_0003.html#lts_04_0003__table9217134717322)。 标签键/标签值只能包含数字、字母、下划线和中划线，标签最大长度为64。最多支持添加10个标签。    | 未开启                       |
   | 标签         | 为函数添加标签，标签用于标识和分类函数资源。 添加标签后，可在"函数列表"页面通过标签快速检索和定位函数，便于系统化管理资源。 标签与函数资源间为多对多关系，最多支持为单个函数添加20个标签。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | -                         |
   | KMS静态加密代码  | 当前仅"拉美-圣保罗一"区域支持配置该参数。 选择是否使用KMS静态加密函数代码。 注意： 密码安全中心DEW将按需收取费用，详情请参见[密码安全中心计费说明](https://support.huaweicloud.com/price-dew/dew_03_0006.html)。 支持选择以下加密类型： - （默认）functiongraph/default：函数会在您账号下的DEW服务中自动创建默认密钥，您无需手动创建。 首次使用该默认密钥进行加解密，需确保函数委托中拥有以下权限：kms:dek:decrypt、 kms:dek:create、 kms:cmk:create、kms:cmk:get、 kms:cmk:list。   - 使用用户主密钥：支持选择已创建的密钥加密函数代码，创建用户主密钥可参考[创建自定义密钥](https://support.huaweicloud.com/usermanual-dew/dew_01_0178.html)。使用用户主密钥，需确保函数委托中拥有以下权限：kms:dek:decrypt、 kms:dek:create、 kms:cmk:get、 kms:cmk:list。 注意： 若选择"使用用户主密钥"，在后续使用中请勿在DEW服务中删除用于函数加密的主密钥，否则将因加密数据无法解密而导致函数执行失败。    请参考[JSON视图配置自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html#section1)前往IAM控制台配置函数的委托权限策略。           | （默认）functiongraph/default |
      
   
   
4. 配置完成后单击"创建函数"，页面跳转至函数详情配置页面，界面上方显示成功创建函数。
5. 完成函数创建后，请参见[配置函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0300.html)，根据业务需求完成各项配置，即可使用函数。
 
#### 相关文档
- 针对不同使用场景，函数工作流支持创建事件函数和HTTP函数，可使用内置运行时、定制运行时或自定义镜像编写函数，且支持为函数使用GPU计算资源。如何针对应用场景进行函数类型选型，详情请参见[函数类型选型](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_02_1001.html)。
- 除使用控制台外，函数工作流支持通过API的方式创建函数，详情请参见[创建函数](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0108.html)。
- 创建函数的常见问题排查方法请参见[创建函数常见问题](https://support.huaweicloud.com/functiongraph_faq/functiongraph_03_0344.html)。
- 创建简单事件函数的快速入门示例，请参见[使用空白模板创建并执行函数](https://support.huaweicloud.com/qs-functiongraph/functiongraph_04_0101.html)、[使用容器镜像创建并执行事件函数](https://support.huaweicloud.com/qs-functiongraph/functiongraph_04_0104.html)。
 
