
# 创建函数
函数是资源调度和代码运行的基本单位，是由用户创建，实现特定功能的一段代码，可以在连接器自定义认证、创建连接器执行动作和流编排中使用。
#### 创建函数
1. 在开天集成工作台界面中，选择左侧导航栏中的"流编排 \> 函数"。
2. 选择"我的函数"页签，在界面右上方选择"创建函数"。
3. 设置函数的基本配置信息，具体的参数说明如[表1]所示。
   
    表1参数说明 
   | 参数        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 名称        | 填写函数的名称，根据规划自定义。 说明： 函数名称生成源码后不支持修改，建议您按照一定的命名规则填写函数名称，方便您快速识别和查找。                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 描述        | 函数的简单描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 入参        | 支持自定义、CDM导入、JSON导入三种方式。 - 自定义：设置函数的入参，包括参数名称（API文件中参数项的名称）、显示字段（用户在表单中看到的参数项标签）、参数类型和说明，是否为必填参数。  - CDM导入：系统支持公共CDM和我的CDM两种类型。用户可以从下拉列表中选择所需要的CDM导入参数，也可以通过下拉列表的"搜索"功能查找所需要的模型并导入。 用户可以单击"查看行业模板市场"查看已有的行业模板。   - JSON导入：需要编写并导入JSON。   |
   | 出参        | 支持自定义、CDM导入、JSON导入三种方式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 执行语言      | 选择函数的执行语言。该参数表示运行函数的环境。 - Node.js14.18  - Python3.9  - JVM11  - Java11                                                                                                                                   |
   | 编辑源码      | 当"执行语言"选择"Node.js14.18""Python3.9""JVM11"时，才有此参数。 编辑函数的源码信息。请参见[5]\~[7]。                                                                                                                                                                                                                                                                                                                                                              |
   | 上传方式      | 当"执行语言"选择"Java11"时，才有此参数。 支持上传不超过500KB的.jar文件。上传新的.jar文件时，会覆盖现有代码。如果上传的.jar文件代码中包含敏感信息，请自行加密防止泄露。                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 内存        | 设置函数执行内存。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 运行时间上限(秒) | 函数运行的时间上限，默认为30秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 单实例并发数    | 函数实例支持的并发数，取值范围为1-1000的整数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 依赖包       | 可以添加函数运行的依赖包。请参见[4]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
      
   
   
4. （可选）添加函数运行的依赖包。单击"依赖包"旁的"添加"，在弹出的"选择依赖包"界面勾选需要的依赖包，单击"确定"。
   
   如果没有所需的依赖包，您可以自行创建依赖包，具体请参见[依赖包管理](https://support.huaweicloud.com/usermanual-mssi/mssi_02_0093.html)。
   ![](https://support.huaweicloud.com/usermanual-mssi/public_sys-resources/note_3.0-zh-cn.png)
   - 一个函数最多添加20个依赖包。
   
   - 除了您自行创建的依赖包（私有依赖包）以外，FunctionGraph还提供了一些常见的公共依赖包，您可以直接选择使用。
    
   
   
5. 编辑源码信息，在编辑区定义函数，定义完成后单击"保存并测试"。
6. 在界面右侧弹出的界面中，修改请求参数后单击"提交测试"，在测试结果区域查看测试结果及运行日志。 
   关闭测试窗口后，再次执行[5]，弹窗会显示上次测试的请求参数。
   
   
7. 测试通过后，单击"确定"。
8. 函数设置完成后，单击"更新"。创建完成后，您可以在[连接器管理](https://support.huaweicloud.com/usermanual-mssi/mssi_02_0075.html)或[流编排](https://support.huaweicloud.com/usermanual-mssi/mssi_02_0055.html)中正常使用函数。
   
   ![](https://support.huaweicloud.com/usermanual-mssi/public_sys-resources/note_3.0-zh-cn.png)
   如果创建的函数未保存并测试，则单击"创建"，成功创建函数。
   
   
 
#### 更多操作
函数创建完成后，您可以执行如[表2]的操作。
 表2相关操作 
| 操作   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|
| 编辑函数 | 在我的函数列表中，单击"操作"列的"编辑"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 共享函数 | 在我的函数列表中，单击"操作"列的"共享"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 删除函数 | - 删除单个函数：在我的函数列表中，单击"操作"列的"更多 \> 删除"。  - 批量删除函数：在我的函数列表中，在"函数名称"前勾选需要删除的函数，单击函数列表上方的"删除"。   说明： - 在执行删除操作前，请确保将云服务器上的数据已完成备份或者迁移，删除数据后，数据无法找回，请谨慎操作。  - 正在被使用的函数，无法删除。   |
| 复制函数 | 在我的函数列表中，单击"操作"列的"更多 \> 复制"。复制后的函数名称系统会进行校验，不能超过60个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
