更新时间:2024-07-12 GMT+08:00
分享

发布算子

操作场景

所有开发者均可以创建用于数据处理的算子,审核通过后发布至DWR算子市场,开放给所有华为云用户使用。

当算子被华为云用户使用之后,算子发布者将会获得相应的收益,详情参见计费说明

算子从API上线、开发、到发布的整个流程如图1所示,本节主要介绍如何使用DWR发布已开发好的算子到算子市场。

算子开发完成后,您可以参考抽帧截图(自定义算子)来验证算子。

图1 算子发布流程

约束与限制

当前发布算子功能仅支持IAM主账号。

前提条件

算子已开发完成,开发规范参考自定义函数开发规范,建议使用Go、Python开发(算子的冷启动效果更好)。

算子已在华为云云商店上架,上架指导参考发布API类商品操作指导

开发的新算子如果要支持同步工作流,需要保证同步工作流最后一个算子返回方式为以下的一种:

  • 返回方式1:字符串数据
    {
        "execution_name":"84a3dd2bd67f43aa9b98cdd74604ca68", //工作流实例名称
        "graph_name":"test_workflow", //工作流名称
        "Records":[  // 处理对象
    
        ],
         "dynamic_source": {//执行算子的输出结果
         "tasks": [
    	    {body},  // 直接返回body字符串
        ]
      }
    }
    
  • 返回方式2:文件流数据
    {
        "execution_name":"84a3dd2bd67f43aa9b98cdd74604ca68", //工作流实例名称
        "graph_name":"test_workflow", //工作流名称
        "Records":[  // 处理对象
    
        ],
        "dynamic_source":{ //执行算子的输出结果
        "tasks":[
                {   
                        "output":{  // 同步返回的输出文件地址:桶名、对象名、区域
                        "bucket":"bucketname",
                        "object":"objectname",
                        "location":"cn-north-4"
                    }
                }
            ]
        }
    }

操作步骤

  1. 登录管理控制台。在左侧导航栏上方,单击,选择“存储 > 数据工坊DWR”。

    进入DWR页面。

  2. 在左侧导航栏选中“发布算子”,进入“发布算子”页面。
  3. 单击界面右上角的“发布公共算子”。
  4. 配置算子基本信息。

    表1 配置基本信息

    参数

    说明

    算子名称

    算子名称不能与本用户已有的算子重名。

    算子提供方

    -

    算子描述

    -

    API链接

    填写华为云云商店已上架的算子链接。

    算子分类

    根据算子市场上提供的分类进行选择。

    算子logo

    支持主流图片格式。

    图2 算子基本信息

  5. 上传算子文件。

    上传文件包括:算子代码包、中文和英文帮助文档、中文和英文服务协议文档、中文和英文开源声明、中文和英文测试报告。

    图3 上传文件

  6. 配置算子参数。

    参数

    说明

    Inputs参数(可选)

    提供算子入参中动态参数对应的参数值,其Key值需要与动态参数中保持一致。

    动态参数(可选)

    提供算子入参的参数列表,可配置静态参数或动态参数,动态参数需要从Inputs参数中根据定义的Key取值。

    权限版本

    华为云统一身份认证(IAM)的权限版本,1.0版本以服务为粒度,提供有限的服务相关角色用于授权。1.1版本支持细粒度授权,可以精确到具体服务的操作、资源以及请求条件等。

  7. 单击右下角的“提交审核”。

    审核通过后,算子将发布至算子市场。您可以过滤第三方的算子提供方,查看您发布的算子。

算子参数配置示例

Inputs参数

Input结构体参数说明参见创建工作流API

regex参数设置的正则表达式请使用regexploit工具校验。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[
	{    //算子所在工作流输入列表
		"parameter_name": "bucket",
		"parameter_value": "",
		"value_type": "",
		"default": "",
		"type": "string",
		"label": "Body",
		"constraints": {
			"regex": ".*"//正则表达式请使用regexploit工具校验
		},
		"invisible": false,
		"description": "doc destination bucket name"
	}
]

动态参数

1
2
3
4
5
{
	"bucket": {
		"get_input": "$.inputs.bucket"//该值需要跟inputs参数中的parameter_name取值保持一致
	}
}

权限版本

obs授权参见对象相关授权项桶相关授权
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[
      { //1.1版本支持细粒度授权,可以精确到具体服务的操作、资源以及请求条件等
        "version": "1.1",
        "statement": [
          {
          //对IAM用户组授予OBS指定资源的指定操作权限
            "action": [
              "obs:bucket:HeadBucket",
              "obs:bucket:ListBucketMultipartUploads",
              "obs:object:AbortMultipartUpload",
              "obs:object:PutObject",
              "obs:bucket:GetBucketAcl",
              "obs:object:GetObject"
            ]
          }
        ]
      }      
    ]

相关文档