华为云用户手册

  • 参数说明 参数 子参数 参数说明 input_features_str - 输入的列名以逗号分隔组成的字符串,例如: "column_a" "column_a,column_b" min - 转换后的最小值,默认为0.0 max - 转换后的最大值,默认为1.0 input_vector_column - 输入的向量列的列名,默认为"input_features" output_vector_column - 结果输出的向量列的列名,默认为"output_scaler_features"
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "input_features_str": "", # @param {"label":"input_features_str","type":"string","required":"false","helpTip":""} "fp_items_col": "values", # @param {"label":"fp_items_col","type":"string","required":"false","helpTip":""} "prediction_col": "prediction", # @param {"label":"prediction_col","type":"string","required":"false","helpTip":""} "min_support": 0.3, # @param {"label":"min_support","type":"number","required":"true","range":"(none,none)","helpTip":""} "min_confidence": 0.8 # @param {"label":"min_confidence","type":"number","required":"true","range":"(none,none)","helpTip":""}}fp_growth____id___ = MLSFPGrowth(**params)fp_growth____id___.run()# @output {"label":"pipeline_model","name":"fp_growth____id___.get_outputs()['output_port_1']","type":"PipelineModel"}# @output {"label":"dataframe","name":"fp_growth____id___.get_outputs()['output_port_2']","type":"DataFrame"}
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "b_output_action": True, "outer_pipeline_stages": None, "input_features_str": "", # @param {"label":"input_features_str","type":"string","required":"false","helpTip":""} "min": 0.0, # @param {"label": "min","type":"number","required":"true","range":"(none,none)","helpTip":""} "max": 1.0, # @param {"label":"max","type":"number","required":"true","range":"(none,none)","helpTip":""} "input_vector_column": "input_features", # @param {"label":"input_vector_column","type":"string","required":"true","helpTip":""} "output_vector_column": "minmax_scaler_features" # @param {"label":"output_vector_column","type":"string","required":"true","helpTip":""} }min_max_scaler____id___ = MLSMinMaxScaler(**params)min_max_scaler____id___.run()# @output {"label":"pipeline_model","name":"min_max_scaler____id___.get_outputs()['output_port_1']","type":"PipelineModel"} # @output {"label":"dataframe","name":"min_max_scaler____id___.get_outputs()['output_port_2']","type":"DataFrame"}
  • 参数说明 参数 子参数 参数说明 input_features_str - 数据集的特征列名组成的格式化字符串,例如: "column_a" "column_a,column_b" fp_items_col - fp-growth模型训练所需要的项目数组的列名 prediction_col - 预测列名 min_support - 最小支持度 min_confidence - 生成关联规则的最小置信度
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "b_output_action": True, "outer_pipeline_stages": None, "input_col": "", # @param {"label":"input_col","type":"string","required":"true","helpTip":""} "output_col": "binarizered_feature", # @param {"label":"output_col","type":"string","required":"true","helpTip":""} "threshold": 0.0 # @param {"label":"threshold","type":"number","required":"true","range":"(none,none)","helpTip":""}}binarizer____id___ = MLSBinarizer(**params)binarizer____id___.run()# @output {"label":"dataframe","name":"binarizer____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "input_columns_str": "", # @param {"label":"input_columns_str","type":"string","required":"true","helpTip": ""} "input_weights_str": "" # @param {"label":"input_weights_str","type":"string","required":"true","helpTip": ""}}feature_transform____id___ = MLSFeatureTransform(**params)feature_transform____id___.run()# @output {"label":"dataframe","name":"feature_transform____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 参数说明 参数 子参数 参数说明 column_type_map_str - 指定相应列的数据类型的规范化字符串,例如:"column_a:string,column_b:integer",列类型可以是:string,integer,long,float,double,bool,date,timestamp timestamp_format - 取值yyyy-MM-dd HH:mm:ss date_format - 取值yyyy-MM-dd
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "column_type_map_str": "", # @param {"label":"column_type_map_str","type":"string","required":"true","helpTip":""} "timestamp_format": "yyyy-MM-dd HH:mm:ss", # @param {"label":"timestamp_format","type":"string","required":"false","helpTip":""} "date_format": "yyyy-MM-dd" # @param {"label":"date_format","type":"string","required":"false","helpTip":""}}modify_data_type____id___ = MLSModifyDataType(**params)modify_data_type____id___.run()# @output {"label":"dataframe","name":"modify_data_type____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "columns_str": "", # @param {"label":"columns_str","type":"string","required":"true","helpTip":""} "ascend_tags_str": "" # @param {"label":"ascend_tags_str","type":"string","required":"true","helpTip":""}}sort_with_columns____id___ = MLSSortWithColumns(**params)sort_with_columns____id___.run()# @output {"label":"dataframe","name":"sort_with_columns____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "select_columns_str": "" # @param {"label":"select_columns_str","type":"string","required":"true","helpTip":""}}select_columns____id___ = MLSSelectColumns(**params)select_columns____id___.run()# @output {"label":"dataframe","name":"select_columns____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "column_type_map_str": "" # @param {"label":"column_type_map_str","type":"string","required":"true","helpTip":""}}set_metadata____id___ = MLSSetMetadata(**params)set_metadata____id___.run()# @output {"label":"dataframe","name":"set_metadata____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "derive_operators_str": "" # @param {"label":"derive_operators_str","type":"string","required":"true","helpTip": ""}}feature_derive____id___ = MLSFeatureDerive(**params)feature_derive____id___.run()# @output {"label":"dataframe","name":"feature_derive____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 输出设置编写指引 如代码模板所示,算子用于下游算子输入的输出数据封装在类的__output字典里,通过对外函数get_outputs暴露出去,下游算子可以通过调用上游算子类对象的get_outputs函数得到上游算子的输出数据。 #id#标记,是为了防止用户拖拽多个相同算子导致类实例的重名,前端会自动将#id#替换为唯一的id。 #@output标记,能够触发前端的界面响应,通过定义端口的名字、输出值、端口类型等,前端能够定义该算子的端口输出类型,从而和下游算子相同类型的输入端口相连。
  • 自定义算子代码模板 新建自定义算子时,MLS Editor提供了代码模板,方便用户高效开发算子。 class MLSClassName: # init parameters def __init__(self, inputs, param_1, param_2): self.inputs = inputs self.param_1 = param_1 self.param_2 = param_2 self.upper_output = None self._outputs = {} # core code for customized algorithm def run(self): # get upper output of workflow self.upper_output = self.inputs["upper_output"] # ...core code... # output format self._outputs = { "output_port_1": "output_result" } # user called method for getting algorithm result def get_outputs(self): return self._outputs# call form for algorithminputs = { "upper_output": None #@input {"type":"DataFrame"}}params = { "inputs": inputs, "param_1": "param_value_1", #@param {"label":"param_1","type":"string","required":"false","helpTip":""} "param_2": "param_value_2", #@param {"label":"param_1","type":"enum","options":"one,two,three","required":"true","helpTip":""} "param_3": "param_value_3", #@param {"label":"param_1","type":"integer","range":"(0,none)","required":"true","helpTip":""} "param_4": "param_value_4" #@param {"label":"param_1","type":"number","range":"(0,1)","required":"true","helpTip":""}}mls_instance_#id# = MLSClassName(**params)mls_instance_#id#.run()#@output {"label":"dataframe","name":"mls_instance_#id#.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 params = { "obs_data_path": "", # @param {"label":"obs_data_path","type":"string","required":"true","helpTip":""} "has_header": True, # @param {"label":"has_header","type":"boolean","required":"false","helpTip":""} "delimiter": "," # @param {"label":"delimiter","type":"string","required":"true","helpTip":""}}mls_read_obs_data____id___ = MLSReadOBSData(**params)mls_read_obs_data____id___.run()# @output {"label":"dataframe","name":"mls_read_obs_data____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 params = { "input_file_path": "", # @param {"label":"input_file_path","type":"path","required":"true","helpTip":""} "format": "csv", # @param {"label":"format","type":"string","required":"false","helpTip":""} "has_header": True, # @param {"label":"has_header","type":"boolean","required":"false","helpTip":""} "delimiter": "," # @param {"label":"delimiter","type":"string","required":"false","helpTip":""}}read_data____id___ = MLSReadData(**params)read_data____id___.run()# @output {"label":"dataframe","name":"read_data____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 编写自定义算子 用户通过自定义算子功能,可以实现个性化的算子编写。 用户单击“新增自定义算子”图标,新建并打开一个模板算子,即一个算子编辑器(相当于Ipython Notebook的一个cell),输入自定义算子名称,即可以在新建的算子编辑器里面实现自定义算子开发,如图1所示。用户可进行算子编辑、调试、复制、保存等功能。 图1 新增自定义算子 由于算子使用过程中会将ipynb文件中的所有Cell合并为一个Cell,因此建议开发者直接将算子代码写在一个Cell中。 父主题: 算子操作
  • 响应消息体 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "cn-north-1", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息。
  • 样例 params = { "input_file_path": "" # @param {"label":"input_file_path","type":"path","required":"true","helpTip":""}}read_parquet_data____id___ = MLSReadParquetData(**params)read_parquet_data____id___.run()# @output {"label":"dataframe","name":"read_parquet_data____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 params = { "DLI_database": None, # @param {"label":"DLI_database","type":"string","required":"true","helpTip":""} "DLI_table": None # @param {"label":"DLI_table","type":"string","required":"true","helpTip":""}}read_DLI_table____id___ = MLSReadDLITable(**params)read_DLI_table____id___.run()# @output {"label":"dataframe","name":"read_DLI_table____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 样例 params = { "obs_model_path": "" # @param {"label":"obs_model_path","type":"string","required":"true","helpTip":""}}mls_read_obs_model____id___ = MLSReadOBSPipelineModel(**params)mls_read_obs_model____id___.run()# @output {"label":"pipeline_model","name":"mls_read_obs_model____id___.get_outputs()['output_port_1']","type":"PipelineModel"}
  • 概述 欢迎使用代码托管(CodeArts Repo)。代码托管服务源自华为千亿级代码管理经验,基于Git,提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线代码托管服务,包括代码克隆/下载/提交/推送/比较/合并/分支/Code Review等功能。 您可以使用本文档提供的API对代码托管服务进行相关操作,如创建仓库、添加部署密钥、添加仓库成员等。支持的全部操作请参见API概览。 在调用代码托管服务的API之前,请确保已经充分了解代码托管服务的相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 状态码 表1 状态码 状态码 编码 错误码说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTP请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。 使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。 返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme:表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint:指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点中获取。例如IAM服务在“华北-北京一”区域的Endpoint为“iam.cn-north-1.myhuaweicloud.com”。 resource-path:资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string:查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 公有云API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参加AK/SK认证。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxx为project的名称,如cn-north-1,您可以从地区和终端节点中获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token额作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取用户Token到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 修订记录 发布日期 修订记录 2020-02-18 第一次正式发布。 2020-05-11 加入api调试链接 2020-05-29 更新 【使用前必读】、【API概览】、【如何调用API】、【附录】 2020-8-10 更新【终端节点】 2020-8-26 新增6个接口,并对应归档旧接口 2020-8-28 新增【应用示例】 2020-9-16 更新【错误码】 2020-9-29 更新【错误码】编码 2020-11-4 更新 新版【错误码】 2020-11-5 增加部分接口调试参数 2020-11-25 优化部分接口的响应示例 2021-12-29 新增7个接口,并对应归档旧接口 2022-05-24 新增3个接口,并对应归档旧接口 2022-09-19 新增6个接口,并对应归档旧接口
共100000条