更新时间:2026-07-28 GMT+08:00
分享

创建FunctionGraph函数

前提条件:

了解FunctionGraph业务使用流程

准备工作

在创建FunctionGraph函数之前,您需要获取这两个配置项。

表1 配置项说明

配置项

配置参数

functiongraph Endpoint

spark.hadoop.fs.functiongraph.endpoint=functiongraph.XXYYZZ.huawei.com

用户项目ID

spark.hadoop.fs.user.projectId=xxxxxxxxxc9782fxxxxxxxxxxxxxx

提交Spark SQL或Spark Job作业时,需要设置以上两个配置项。

步骤1:创建函数

  1. 登录函数工作流FunctionGraph管理控制台。
  2. 在左侧列表中单击“函数 > 函数列表”,单击“创建函数”
    图1 创建函数
  3. 单击“创建空白函数”,并配置函数的基本信息。

    详细参数说明请参考函数属性

    • 函数类型:本例为事件函数。
    • 运行时环境:Java 8。
    • 委托:当函数工作流服务需与其他云服务协同工作时,需要创建云服务委托,授权FunctionGraph使用这些云服务,并在FunctionGraph中为函数配置委托权限,以实现与其他云服务的协同工作。
    • FunctionGraph单次调用数据量有约束与限制。函数如果超过4MB,建议配置访问OBS的委托权限。具体操作请参考相关操作:配置FunctionGraph访问其他云服务的委托
    图2 创建函数

步骤2:函数设置

  1. 设置函数执行入口
    1. 函数创建完成后,在列表单击函数名称进入函数详情页面。
    2. 选择“设置 > 常规设置”,在“函数执行入口”中设置UDF的执行入口。

      UDF的执行入口格式为[包名].[类名].[执行函数名],

      • [包名].[类名]为编写的UDF函数所在类,
      • 执行函数名固定为handleRequest。

      本示例设置为:com.huawei.demo.UDFDemo.handleRequest,

    3. 设置完成之后单击保存按钮。
  2. 设置执行超时时间和内存
    1. 函数创建完成后,在列表单击函数名称进入函数详情页面。
    2. 选择“设置 > 常规设置”,在“函数执行入口”中设置执行时间和内存。

      根据UDF复杂情况配置执行超时时间和内存大小。内存大小与计费关联。

      本示例选择执行时间为15秒,内存为1024MB。

    3. 设置完成之后单击保存按钮。
      图3 常规设置
  3. 设置类隔离信息
    1. 函数创建完成后,在列表单击函数名称进入函数详情页面。
    2. 选择“设置 > 高级设置”,配置“类隔离选项”。

      类隔离开启后将使用单独的类加载器加载上传的代码和依赖,解决依赖和运行时的冲突,如果无依赖冲突问题无需打开。

    本示例中关闭类隔离选项,设置完成后单击保存按钮。

    图4 设置类隔离

步骤3:上传Jar包

  1. 在FunctionGraph管理控制台,函数列表中单击函数名称进入函数详情页面。
  2. 单击"代码",在右侧上传代码下拉框当中选择JAR文件,将之前导出的JAR包上传

    Upload the exported jar.

    图5 上传JAR文件
  3. 上传成功之后,可以在函数详情页面复制URN(Uniform Resource Name)。URN是函数的唯一标识函数,在下一步调用函数时需要用到。
    图6 复制URN

相关操作:配置FunctionGraph访问其他云服务的委托

  1. 登录管理控制台。
  2. 单击右上方登录的用户名,在下拉列表中选择“统一身份认证”。
  3. 在左侧导航栏中,单击“委托”。
  4. 在“委托”页面,单击“创建委托”。
  5. 在“创建委托”页面,设置如下参数:
    • 委托名称:按需填写。
    • 委托类型:选择“云服务”。
    • 云服务:(“委托类型”选择“云服务”时出现此参数项。)在下拉列表中选择“FunctionGraph"。
    • 持续时间:选择“永久”。
    • 描述:非必选,可以填写“拥有OBS OperateAccess权限的委托”。
      图7 创建委托
  6. 配置完委托的基本信息后,单击“立即授权”。
  7. 进入“选择策略”页面,在右方搜索框中搜索OBS Administrator权限并勾选。勾选完成后单击“下一步”。
  8. 单击“下一步”,选择委托的授权范围。

    了解更多授权操作说明请参考创建用户组并授权

    • 所有资源:授权后,IAM用户可以根据权限使用账号中所有资源,包括企业项目、区域项目和全局服务资源。
    • 全局服务资源:全局服务部署时不区分区域,访问全局级服务,不需要切换区域,全局服务不支持基于区域项目授权。如对象存储服务(OBS)、内容分发网络(CDN)等。授权后,用户根据权限使用全局服务的资源。
    • 指定区域项目资源:授权后,IAM用户根据权限使用所选区域项目中的资源,未选择的区域项目中的资源,该IAM用户将无权访问。
    • 指定企业项目资源:授权后,IAM用户根据权限使用所选企业项目中的资源。如企业项目A包含资源B,资源B部署在北京四和上海二,IAM用户所在用户组关联企业项目A后,北京四和上海二的资源B用户都可访问,不在企业项目A内的其他资源,该IAM用户将无权访问。

    本例选择的是OBS策略,因此选择全局服务资源。

  9. 单击“确定”,完成授权。
  10. 授权后需等待15-30分钟才可生效。

    授权生效后返回函数基本信息界面,选择对应的委托,权限策略当中会显示已授权的策略。

相关文档