华为云用户手册

  • 修改个人华为账号的密码 适用于修改个人华为账号(包括购买AppStage的租户开通者的个人华为账号、通过邀请成员加入组织的个人华为账号)的密码。 鼠标光标移至右上角登录的用户名,弹出“账号信息”页面。 在“账号信息”页面,单击“修改密码”,进入华为账号的“帐号与安全”页面。 在“安全中心”区域单击“重置帐号密码”右侧“重置”。 在“重置帐号密码”页面,输入旧密码、新密码及再次输入新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果忘记旧密码,可通过如下操作找回密码: 单击“忘记旧密码”。 在“找回密码”页面,输入华为账号(注册账号的手机号或邮件地址)。 输入图形验证码,单击“下一步”。 单击“获取验证码”,输入相应的邮件验证码或手机验证码,再单击“下一步”。 设置新密码并确认新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果您有其他设备使用此账号,设置新密码后需重新登录,以确保正常使用华为服务。
  • 合作伙伴如何发送邀请链接?线下邀请时效是多久? 合作伙伴可以先报备潜在客户,报备后,通过线上或线下方式给潜在客户发送关联邀请。 线上邀请方式通过给潜在客户在线发送邮件邀请其自动完成关联。线上邀请链接有效期为7天,请务必提醒客户在规定时间内完成注册。若客户未能及时注册,可重新向客户发起邀请。请提醒客户,使用您报备时填写的手机号码 注册华为账号 并开通华为云进行关联。 线下邀请方式可以通过邮件、短信、微信等方式给客户发送邀请链接及二维码。线下邀请链接及二维码无有效期限制,一直有效。 详细操作步骤,请参见客户拓展。 父主题: 关联与解除关联
  • 获取合作伙伴Token时状态码返回401 Unauthorized 如果调用 IAM 的“获取用户Token”接口获取合作伙伴Token时报如下屏显的401错误, { "error": { "message": "The username or password is wrong.", "code": 401, "title": "Unauthorized" } } 请首先检查请求参数中使用的账号和密码是否为华为云账号和密码。 企业注册华为账号并开通华为云,完成企业实名认证并完成标准解决方案提供商合作伙伴认证后,即可成为解决方案提供商合作伙伴。需要使用华为云账号登录伙伴中心获取到华为云账号的密码后,通过华为云账号和密码获取合作伙伴Token。 如果 获取Token 时,请求参数中使用的是华为云账号和密码,请确认账号或密码是否有误。 父主题: 接口调用
  • 抹零金额是如何产生的,抹零规则是什么? 华为云产品 定价精度为小数点后8位(单位:元),因此在计费过程中会产生小数点后8位的资源使用费用。伙伴中心在按需计费等模式中,结算出账时实际只扣费到最小货币单位分。即展示金额时,保留到小数点后2位,小数点后第3位到第8位部分金额则会被舍弃,这种舍弃部分的金额被称作抹零金额。 示例:1GB的云硬盘 定价 为0.00064000元/1小时,客户按需使用10GB大小的云硬盘,实际使用25874秒,则未出账的应付金额为(25874/3600)* 0.00064000*10=0.04599822元,出账后实际应付金额为0.04元,抹零金额为 0.00599822元。 父主题: 其他
  • 请求消息 请求参数 参数 是否必选 参数类型 取值范围 描述 xaccount_id 是 String 最大长度:128 伙伴销售平台的用户唯一标识,该标识的具体值由伙伴分配。 xaccount_type 是 String 最大长度:64 华为分给合作伙伴的平台标识。 该标识的具体值由华为分配。获取方法请参见如何获取xaccountType的取值。 domain_name 否 String [5-32] 客户的华为云账号名。 如果为空,随机生成。 不能以“op_”或“shadow_”开头且不能全为数字。 校验长度(5到32位)和规则^([a-zA-Z_-]([a-zA-Z0-9_-])*)$。 此参数不携带或携带值为空串或携带值为null时,随机生成。 mobile_phone 否 String 最大长度:32 手机号。 目前系统只支持中国的手机号。 示例:13XXXXXXXXX 此参数不携带或携带值为null时,不被赋值;携带值为空串时,赋值为空串。 verification_code 否 String [6] 验证码。 请调用“发送验证码”接口获取。 如果手机号不存在,则不需要输入验证码。 此参数不携带或携带值为null时,不做处理;不支持携带值为空串。 password 否 String 长度:[8-32] 密码规则如下: 至少包含以下四种字符中的两种: 大写字母、小写字母、数字、特殊字符; 不能和账号名或倒序的账号名相同; 不能包含手机号。 如果为空,用户没有密码,则不能直接在华为云登录,只能通过伙伴系统SSO方式跳转到华为云。 此参数不携带或携带值为null时,密码随机生成;不支持携带值为空串。 is_close_market_ms 否 String 最大长度:10 是否关闭营销消息的发送。 true:关闭 false:不关闭(默认) 此参数不携带或携带值为空串或携带值为null时,赋值为false。 indirect_partner_id 否 String 最大长度:64 云经销商ID。获取方法请参见查询云经销商列表。 如果需要创建云经销商的子客户,必须携带该字段。除此之外,此参数不携带或携带值为空串或携带值为null,不做处理。 include_association_result 否 Boolean - 是否返回子客户的关联结果。 true:返回子客户和伙伴的关联结果 false:不返回子客户和伙伴的关联结果 默认值为false。 此参数不携带或携带值为空串或携带值为null时,赋值为false。 请求示例 POST https://bss.myhuaweicloud.com/v2/partners/sub-customers HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ { "domain_name": "test", "mobile_phone": "188****8888", "verification_code": "253***", "xaccount_id": "35rey****", "xaccount_type": "***_IDP", "password": "*******", "is_close_market_ms": "true", "indirect_partner_id": "a0d736********aab6502d1a828c1809", "include_association_result": "false" }
  • 接口约束 该接口只允许使用合作伙伴AK/SK或者Token调用。 合作伙伴销售平台创建客户的页面必须体现华为云用户协议和隐私政策声明。 此接口会为客户创建委托授权,用于将合作伙伴的Token置换成客户Token,即允许合作伙伴以客户的身份做资源开通、查询等相关操作。因此合作伙伴销售平台在调用此接口前请先获得客户授权说明。 如果创建客户的时候输入手机号,在调用该接口前,请先调用“发送验证码”接口获取验证码。 自2022年8月1日起,密码长度至少为8个字符。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 错误描述 400 CBC.0100 参数错误。 请根据“请求消息”中请求参数的描述检查输入的参数是否满足条件。 400 CBC.0101 参数无效。 400 CBC.50010059 一级经销商不允许关联子客户。 400 CBC.50010065 该伙伴是云经销商,其关联的总经销商已经摘牌退出,无法拓客创建关联关系。 400 CBC.99000038 客户登录名已经存在。 400 CBC.99000029 客户手机号已经存在。 400 CBC.99000031 客户登录名格式不合法。 400 CBC.5017 客户手机号格式不合法。 400 CBC.99000039 xaccountId重复。 400 CBC.99000004 客户向伙伴授权时发生异常。 400 CBC.99000030 手机号注册数量超过上限。 400 CBC.99000036 客户密码格式不合法。 400 CBC.99000037 您没有操作该云经销商的权限。 500 CBC.99000050 伙伴和子客户关联结果查询超时,请使用查询客户列表确认最终关联结果。 400 CBC.99000051 该手机号/邮箱已被华为报备,无法创建客户。 400 CBC.99004008 有验证码,但是已经失效。 400 CBC.99004009 有验证码,但是校验失败次数已经大于3。 400 CBC.99004010 校验客户端输入的验证码错误。 400 CBC.99005035 测试伙伴账号不能使用该接口。 401 CBC.0154 token非法/过期。 403 CBC.0151 访问拒绝。 500 CBC.0999 其他错误。 400 CBC.50010085 该伙伴企业目前处于受限状态,无法拓客创建关联关系。 400 CBC.50010086 该伙伴是云经销商,其关联的总经销商企业目前处于受限状态,无法拓客创建关联关系。
  • 响应消息 响应参数 参数 参数类型 取值范围 描述 error_code String 最大长度:16 状态码。具体请参考状态码。只有失败才会返回这个参数。 error_msg String 最大长度:1024 错误描述信息。只有失败才会返回这个参数。 domain_id String 最大长度:64 客户ID。 只有成功或者错误码在CBC.99000050时才会返回。 domain_name String 最大长度:64 客户的华为云账号名。 若请求参数中传递了此参数值,此处返回的响应值与请求参数中取值一致。 若请求参数中未传递此参数值,此处返回的响应值为系统随机生成的32位字符串。 只有成功时或者错误码在CBC.99000050时才会返回。 响应示例 HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: length Date: response time { "domain_id": "06a7969058802f0c0f01c00b91846780", "domain_name": "a0d736359ada40aab6502d1a828c1809" }
  • 功能介绍 在伙伴销售平台创建客户时同步创建华为云账号,并将客户在伙伴销售平台上的账号与华为云账号进行映射。同时,创建的华为云账号与伙伴账号关联绑定。 华为云总经销商(一级经销商)可以注册云经销商(二级经销商)的子客户。注册完成后,子客户可以自动和云经销商绑定。 调用该接口为客户创建华为云账号后,如果想从合作伙伴销售平台跳转至华为云官网,还需要进行SAML认证,具体请参见“Web UI方式”中的“SAML认证”。 如果创建的时候不输入手机号,那么客户将无法收到华为云发出的任何提醒短信,需要客户自己登录到华为云平台补充手机号。 调用“创建客户”接口时,华为云会同步创建华为云客户账号,将客户ID及账号名返回给伙伴平台,然后华为云异步完成客户与伙伴的关联。伙伴与客户的关联结果可通过“查询客户列表”查询。 默认会创建代售模式的客户。
  • 背景信息 开发者账号也可称为用户,其信息存储在AstroZero的标准对象User中。在AstroZero中,可以通过如下两种方式添加开发者账号: 添加IAM开发者:添加的IAM开发者账号,必须是从华为云IAM同步过来的。 添加 WeLink 开发者:将WeLink用户添加到AstroZero中,作为开发者账号,详情请参见添加WeLink用户为开发者账号。 本章节以添加IAM开发者为例,向您介绍如何在AstroZero中添加开发者账号。
  • 操作步骤 在“我的应用”中,单击“设备维修管理系统”,进入应用。 在“User”目录中,将鼠标放在“Script”上,单击界面上出现的“+”,在弹出菜单中选择“脚本”。 在弹窗中,选中“创建一个新脚本”,在“名称”文本框中输入“registerPortalUser”,单击“添加”。 在代码编辑器中,插入如下脚本代码。 import * as buffer from "buffer"; import * as crypto from "crypto"; import * as db from "db"; import * as context from 'context'; import * as http from 'http'; import * as permission from 'permission'; //定义入参结构,包括注册账号的用户名、密码和角色,为必填字段 @action.object({ type: "param" }) export class ActionInput { @action.param({ type: 'String', required: true, label: 'string' }) username: string; @action.param({ type: 'String', required: true, label: 'string' }) password: string; @action.param({ type: 'String', required: true, label: 'string' }) role: string; } //定义出参结构,出参包含1个参数,portaluser的记录id @action.object({ type: "param" }) export class ActionOutput { @action.param({ type: 'String' }) msg: string; } //使用数据对象PortalUser @useObject(['PortalUser']) @action.object({ type: "method" }) export class RegisterPortalUser { //定义接口类,接口的入参为ActionInput,出参为ActionOutput @action.method({ input: 'ActionInput', output: 'ActionOutput' }) public registerPortalUser(input: ActionInput): ActionOutput { let out = new ActionOutput(); //新建出参ActionOutput类型的实例,作pu为返回值 let error = new Error(); //新建错误类型的实例,用于在发生错误时保存错误信息 try { let s = db.object('PortalUser'); let saltedPassword = salt(input.password); let userMsg = { "usrName": input.username, "name": input.username, "userPassword": saltedPassword['saltedPassword'], "passwordSalt": saltedPassword['salt'], "userType": input.role }; let userId = s.insert(userMsg); if (userId) { out.msg = "注册成功!"; } else { error.name = "USERERROR"; error.message = "注册失败!"; throw error; } } catch (error) { if (error.name == "405230618") { error.message = "该用户名已注册!" } console.error(error.name, error.message); context.setError(error.name, error.message); } return out; } } function _salt(password: string, saltBuf: buffer.Buffer, encoding: buffer.Encoding = buffer.Encoding.Base64): string { const passwordBuf = buffer.from(password) const crypt = crypto.pbkdf2(passwordBuf, saltBuf, 1000, 32, crypto.Hashs.SHA1) return crypt.toString(encoding) } function salt(password: string, encoding: buffer.Encoding = buffer.Encoding.Base64): object { const saltBuf = crypto.randomBytes(6) const saltedPassword = _salt(password, saltBuf, encoding) return { salt: saltBuf.toString(encoding), saltedPassword: saltedPassword } } 单击编辑器上方的,保存脚本。 测试脚本能否正常执行。 单击编辑器上方的,执行脚本。 在界面底部输入测试数据,单击测试窗口右上角执行图标。 { "username": "test_cs", "password": "***", "role": "cs" } 执行成功,会在“输出”页签返回查询结果。 { "msg": "注册成功!" } 测试成功,单击编辑器上方的,启用发布脚本。
  • 请求示例 更新Flink Jar作业信息,更新后作业名称为test1,作业执行的队列为testQueue,关闭作业日志。 { "name": "test1", "desc": "job for test", "job_type": "flink_jar_job", "queue_name": "testQueue", "manager_cu_number": 1, "cu_number": 2, "parallel_number": 1, "log_enabled": false, "main_class": "org.apache.flink.examples.streaming.JavaQueueStream", "restart_when_exception": false, "entrypoint": "FemaleInfoCollec.jar", "dependency_jars": [ "myGroup/test.jar", "myGroup/test1.jar" ], "dependency_files": [ "myGroup/test.csv", "myGroup/test1.csv" ] }
  • 请求消息 表2 参数说明 参数名称 是否必选 参数类型 说明 name 否 String 作业名称。长度限制:0-57个字符。 desc 否 String 作业描述。长度限制:0-512个字符。 queue_name 否 String 队列名称。长度限制:1-128个字符。 cu_number 否 Integer 用户为作业选择的CU数量。默认值为“2”。 manager_cu_number 否 Integer 用户为作业选择的管理节点CU数量,对应为flink jobmanager数量。默认值为“1”。 parallel_number 否 Integer 用户为作业选择的并发量。默认值为“1”。 log_enabled 否 Boolean 是否开启作业日志。 开启:true 关闭:false 默认:false obs_bucket 否 String 当“log_enabled”为“true”时,用户授权保存日志的OBS桶名。 smn_topic 否 String 当作业异常时,向该 SMN 主题推送告警信息。 main_class 否 String 作业入口类。 entrypoint_args 否 String 作业入口类参数,多个参数之间空格分隔。 restart_when_exception 否 Boolean 是否开启异常重启功能,默认值为“false”。 entrypoint 否 String 用户已上传到 DLI 资源管理系统的程序包名,用户自定义作业主类所在的jar包。 dependency_jars 否 Array of Strings 用户已上传到DLI资源管理系统的程序包名,用户自定义作业的其他依赖包。 示例“myGroup/test.jar,myGroup/test1.jar”。 dependency_files 否 Array of Strings 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的依赖文件。 示例:"myGroup/test.cvs,myGroup/test1.csv" tm_cus 否 Integer 每个taskmanager的CU数,默认值为“1”。 tm_slot_num 否 Integer 每个taskmanager的slot数,默认值为“(parallel_number*tm_cus)/(cu_number-manager_cu_number)”。 feature 否 String 作业特性。表示用户作业使用的Flink镜像类型。 basic:表示使用DLI提供的基础Flink镜像。 custom:表示使用用户自定义的Flink镜像。 flink_version 否 String Flink版本。当用户设置“feature”为“basic”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用的DLI基础Flink镜像的版本。 image 否 String 自定义镜像 。格式为:组织名/镜像名:镜像版本。 当用户设置“feature”为“custom”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用自定义的Flink镜像。关于如何使用自定义镜像,请参考《 数据湖探索 用户指南》。 resume_checkpoint 否 Boolean 异常重启是否从checkpoint恢复。 resume_max_num 否 Integer 异常重试最大次数,单位:次/小时。取值范围:-1或大于0。默认值为“-1”,表示无限次数。 checkpoint_path 否 String 用户Jar中checkpoint的储存地址,不同作业路径需要保持不同。 runtime_config 否 String Flink作业运行时自定义优化参数。 job_type 否 String 作业类型。
  • 响应消息 表4 响应参数说明 参数名称 是否必选 参数类型 说明 is_success 否 String 执行请求是否成功。“true”表示请求执行成功。 message 否 String 消息内容。 job 否 Object 作业状态信息。具体请参考表5。 表5 job参数说明 参数名称 是否必选 参数类型 说明 job_id 是 Long 作业ID。 status_name 否 String 当前状态名称。 status_desc 否 String 当前状态描述。包含异常状态原因及建议。
  • 请求示例 新建名为test的Flink Jar作业,并设置作业执行在testQueue上,设置作业运行所使用的CU数、开启作业日志。 { "name": "test", "desc": "job for test", "queue_name": "testQueue", "manager_cu_number": 1, "cu_number": 2, "parallel_number": 1, "tm_cus": 1, "tm_slot_num": 1, "log_enabled": true, "obs_bucket": "bucketName", "smn_topic": "topic", "main_class": "org.apache.flink.examples.streaming.JavaQueueStream", "restart_when_exception": false, "entrypoint": "javaQueueStream.jar", "entrypoint_args":"-windowSize 2000 -rate 3", "dependency_jars": [ "myGroup/test.jar", "myGroup/test1.jar" ], "dependency_files": [ "myGroup/test.csv", "myGroup/test1.csv" ] }
  • 请求消息 表2 参数说明 参数名称 是否必选 参数类型 说明 name 是 String 作业名称。长度限制:1-57个字符。 desc 否 String 作业描述。长度限制:0-512个字符。 queue_name 否 String 队列名称。长度限制:0-128个字符。 cu_number 否 Integer 用户为作业选择的CU数量。 manager_cu_number 否 Integer 用户为作业选择的管理节点CU数量,对应为flink jobmanager数量。默认值为“1”。 parallel_number 否 Integer 用户为作业选择的并发量。 log_enabled 否 Boolean 是否开启作业日志。 开启:true 关闭:false 默认:false obs_bucket 否 String 当“log_enabled”为“true”时, 用户授权保存作业日志的OBS桶名。 smn_topic 否 String 当作业异常时,向该SMN主题推送告警信息。 main_class 否 String 作业入口类。 entrypoint_args 否 String 作业入口类参数,多个参数之间空格分隔。 restart_when_exception 否 Boolean 是否开启异常重启功能,默认值为“false”。 entrypoint 否 String 用户已上传到DLI资源管理系统的程序包名,用户自定义作业主类所在的jar包。 dependency_jars 否 Array of Strings 用户已上传到DLI资源管理系统的程序包名,用户自定义作业的其他依赖包。 示例“myGroup/test.jar,myGroup/test1.jar”。 dependency_files 否 Array of Strings 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的依赖文件。 示例:"myGroup/test.cvs,myGroup/test1.csv"。 通过在应用程序中添加以下内容可访问对应的依赖文件。其中,“fileName”为需要访问的文件名,“ClassName”为需要访问该文件的类名。 ClassName.class.getClassLoader().getResource("userData/fileName") tm_cus 否 Integer 每个taskmanager的CU数,默认值为“1”。 tm_slot_num 否 Integer 每个taskmanager的slot数,默认值为“(parallel_number*tm_cus)/(cu_number-manager_cu_number)”。 feature 否 String 作业特性。表示用户作业使用的Flink镜像类型。 basic:表示使用DLI提供的基础Flink镜像。 custom:表示使用用户自定义的Flink镜像。 flink_version 否 String Flink版本。当用户设置“feature”为“basic”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用的DLI基础Flink镜像的版本。 image 否 String 自定义镜像。格式为:组织名/镜像名:镜像版本。 当用户设置“feature”为“custom”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用自定义的Flink镜像。关于如何使用自定义镜像,请参考《 数据湖 探索用户指南》。 resume_checkpoint 否 Boolean 异常重启是否从checkpoint恢复。 resume_max_num 否 Integer 异常重试最大次数,单位:次/小时。取值范围:-1或大于0。默认值为“-1”,表示无限次数。 checkpoint_path 否 String 用户Jar中checkpoint的储存地址,不同作业路径需要保持不同。 tags 否 Array of Objects Flink jar作业的标签。具体请参考表3。 runtime_config 否 String Flink作业运行时自定义优化参数。 表3 tags参数 参数名称 是否必选 参数类型 说明 key 是 String 标签的键。 说明: 标签的键的最大长度为128个字符,标签的键可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格,不能以_sys_开头。 value 是 String 标签的值。 说明: 标签值的最大长度为255个字符,标签的值可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格。
  • 请求示例 更新已有的SQL作业,更新后的作业名称为myjob,以共享模式运行在testQueue上。 { "name": "myjob", "desc": "这是我的第一个作业", "queue_name": "testQueue", "sql_body": "select * from source_table", "run_mode": "shared_cluster", "cu_number": 4, "parallel_number": 4, "checkpoint_enabled": false, "checkpoint_mode": "exactly_once", "checkpoint_interval": 10, "obs_bucket": "", "log_enabled": false, "smn_topic": "", "restart_when_exception": false, "idle_state_retention": 3600, "edge_group_ids": [ "62de1e1c-066e-48a8-a79d-f461a31b2ee1", "2eb00f85-99f2-4144-bcb7-d39ff47f9002" ], "dirty_data_strategy": "0", "udf_jar_url": "group/test.jar" }
  • 请求消息 表2 请求参数说明 参数名称 是否必选 参数类型 说明 name 否 String 作业名称。长度限制:0-57个字符。 desc 否 String 作业描述。长度限制:0-512个字符。 queue_name 否 String 队列名称。长度限制:0-128个字符。 sql_body 否 String Stream SQL语句,至少包含source, query, sink三个部分。长度限制:0-1024*1024个字符。 run_mode 否 String 作业运行模式: shared_cluster:共享。 exclusive_cluster:独享。 edge_node:边缘节点。 默认值为“shared_cluster”。 cu_number 否 Integer 用户为作业选择的CU数量。默认值为“2”。 parallel_number 否 Integer 用户设置的作业并行数目。默认值为“1”。 checkpoint_enabled 否 Boolean 是否开启作业自动快照功能。 开启:true 关闭:false 默认:false checkpoint_mode 否 Integer 快照模式,。两种可选: 1:表示exactly_once,数据只被消费一次。 2:at_least_once,数据至少被消费一次。 默认值为1。 checkpoint_interval 否 Integer 快照时间间隔。单位为秒,默认值为“10”。 obs_bucket 否 String 当“checkpoint_enabled”为“true”时,该参数是用户授权保存快照的OBS桶名称。 当“log_enabled” 为“true”时,该参数是用户授权保存作业日志的OBS桶名称。 log_enabled 否 Boolean 是否开启作业的日志上传到用户的OBS功能。默认为“false”。 smn_topic 否 String 当作业异常时,向该SMN主题推送告警信息。 restart_when_exception 否 Boolean 是否开启作业异常自动重启。默认为“false”。 idle_state_retention 否 Integer 空闲状态过期周期,单位为秒,默认值为“3600”。 edge_group_ids 否 Array of Strings 边缘计算组ID列表, 多个ID以逗号分隔。 dirty_data_strategy 否 String 作业脏数据策略。 “2:obsDir”:保存,obsDir表示脏数据存储路径。 “1”:抛出异常。 “0”:忽略。 默认值为“0”。 udf_jar_url 否 String 用户已上传到DLI资源管理系统的资源包名,用户sql作业的udf jar通过该参数传入。 manager_cu_number 否 Integer 用户为作业选择的管理单元(jobmanager)CU数量,默认值为“1”。 tm_cus 否 Integer 每个taskmanager的CU数,默认值为“1”。 tm_slot_num 否 Integer 每个taskmanager的slot数,默认值为“(parallel_number*tm_cus)/(cu_number-manager_cu_number)”。 operator_config 否 String 算子的并行度配置。 resume_checkpoint 否 Boolean 异常重启是否从checkpoint恢复。 resume_max_num 否 Integer 异常重试最大次数,单位:次/小时。取值范围:-1或大于0。默认值为“-1”,表示无限次数。 static_estimator_config 否 String 每个算子的流量/命中率配置,json格式的字符串。例如: {"operator_list":[{"id":"0a448493b4782967b150582570326227","rate_factor":0.55},{"id":"6d2677a0ecc3fd8df0b72ec675edf8f4","rate_factor":1},{"id":"ea632d67b7d595e5b851708ae9ad79d6","rate_factor":0.55},{"id":"bc764cd8ddf7a0cff126f51c16239658","output_rate":2000}]} runtime_config 否 String Flink作业运行时自定义优化参数。 flink_version 否 String Flink版本。当前只支持1.10和1.12。
  • 响应示例 作业类型为:flink_jar_job,参考响应样例如下: { "is_success": "true", "message": "作业详情查询成功", "job_detail": { "job_id": 104, "user_id": "011c99a26ae84a1bb963a75e7637d3fd", "queue_name": "flinktest", "project_id": "330e068af1334c9782f4226acc00a2e2", "name": "jptest", "desc": "", "sql_body": "", "run_mode": "exclusive_cluster", "job_type": "flink_jar_job", "job_config": { "checkpoint_enabled": false, "checkpoint_interval": 10, "checkpoint_mode": "exactly_once", "log_enabled": false, "obs_bucket": null, "root_id": -1, "edge_group_ids": null, "graph_editor_enabled": false, "graph_editor_data": "", "manager_cu_number": 1, "executor_number": null, "executor_cu_number": null, "cu_number": 2, "parallel_number": 1, "smn_topic": null, "restart_when_exception": false, "idle_state_retention": 3600, "config_url": null, "udf_jar_url": null, "dirty_data_strategy": null, "entrypoint": "FemaleInfoCollection.jar", "dependency_jars": [ "FemaleInfoCollection.jar", "ObsBatchTest.jar" ], "dependency_files": [ "FemaleInfoCollection.jar", "ReadFromResource" ] }, "main_class": null, "entrypoint_args": null, "execution_graph": null, "status": "job_init", "status_desc": "", "create_time": 1578466221525, "update_time": 1578467395713, "start_time": null } } 作业类型为:flink_opensource_sql_job,参考响应样例如下: { "is_success": "true", "message": "The job information query succeeds.", "job_detail": { "job_type": "flink_opensource_sql_job", "status_desc": "", "create_time": 1637632872828, "sql_body": "xxx", "savepoint_path": null, "main_class": null, "queue_name": "xie_container_general", "execution_graph": "xxx", "start_time": 1638433497621, "update_time": 1638449337993, "job_config": { "checkpoint_enabled": true, "checkpoint_interval": 600, "checkpoint_mode": "exactly_once", "log_enabled": true, "obs_bucket": "dli-test", "root_id": -1, "edge_group_ids": null, "graph_editor_enabled": false, "graph_editor_data": "", "manager_cu_number": 1, "executor_number": null, "executor_cu_number": null, "cu_number": 2, "parallel_number": 3, "smn_topic": "", "restart_when_exception": true, "resume_checkpoint": true, "resume_max_num": -1, "checkpoint_path": null, "idle_state_retention": 3600, "config_url": null, "udf_jar_url": "test/flink_test-1.0-SNAPSHOT-jar-with-dependencies.jar", "dirty_data_strategy": "0", "entrypoint": "test/flink_test-1.0-SNAPSHOT-jar-with-dependencies.jar", "dependency_jars": null, "dependency_files": null, "tm_cus": 1, "tm_slot_num": 3, "image": null, "feature": null, "flink_version": null, "operator_config": "xxx", "static_estimator_config": "xxx", "runtime_config": null }, "user_id": "xxx", "project_id": "xxx", "run_mode": "exclusive_cluster", "job_id": 90634, "name": "test_guoquan", "desc": "", "entrypoint_args": null, "status": "job_cancel_success" } }
  • 响应消息 表2 响应参数说明 参数名称 是否必选 参数类型 说明 is_success 否 String 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 job_detail 否 Object 作业详情。请参见表3。 表3 job_detail参数说明 参数名称 是否必选 参数类型 说明 job_id 否 Long 作业ID。 name 否 String 作业名称。长度限制:0-57个字符。 desc 否 String 作业描述。长度限制:0-512个字符。 job_type 否 String 作业类型。 flink_sql_job:flink sql作业 flink_opensource_sql_job:flink opensource sql作业 flink_sql_edge_job:flink sql边缘作业 flink_jar_job:flink自定义作业 status 否 String 作业状态。 作业的状态如下: job_init:草稿 job_submitting:提交中 job_submit_fail:提交失败 job_running:运行中(开始计费,提交作业后,返回正常结果) job_running_exception:运行异常(停止计费。作业发生运行时异常,停止运行作业) job_downloading:下载中 job_idle:空闲 job_canceling:停止中 job_cancel_success:已停止 job_cancel_fail:停止失败 job_savepointing:保存点创建中 job_arrearage_stopped:因欠费被停止(结束计费。用户账户欠费,作业停止) job_arrearage_recovering:欠费作业恢复中(用户账户欠费,账户充值,作业恢复中) job_finish:已完成 status_desc 否 String 作业状态描述。 create_time 否 Long 作业创建时间。 start_time 否 Long 作业启动时间。 user_id 否 String 作业所属用户标识。 queue_name 否 String 队列名称。长度限制:1-128个字符。 project_id 否 String 作业所属项目标识。 sql_body 否 String Stream SQL语句。 savepoint_path 否 String 手动产生的Checkpoint的保存路径。 run_mode 否 String 作业运行模式。 shared_cluster:共享 exclusive_cluster:独享 edge_node:边缘节点 job_config 否 Object 作业配置, 具体参数说明请参见表4。 main_class 否 String jar包主类。例如,org.apache.spark.examples.streaming.JavaQueueStream entrypoint_args 否 String jar包作业运行参数,多个参数之间空格分隔。 execution_graph 否 String 作业执行计划。 update_time 否 Long 作业更新时间。 user_name 否 String 用户名,当“show_detail”为“false”时独有。 duration 否 Long 作业运行时长。 单位ms,“show_detail”为“false”时独有。 root_id 否 Long 父作业ID。“show_detail”为“false”时独有。 graph_editor_enabled 否 Boolean 作业的流图是否可编辑。“true”表示作业的流图可以编辑,“false”表示作业的流图不可以编辑。 has_savepoint 否 Boolean 作业是否有保存点。“true”表示作业有保存点,“false”表示作业没有保存点。 edge_group_ids 否 Array of Strings 边缘计算组ID列表。多个ID以逗号分隔。 restart_times 否 Integer 重启次数。 表4 job_config参数说明 参数名称 是否必选 参数类型 说明 checkpoint_enabled 否 Boolean 是否开启作业自动快照功能。 true:开启 false:关闭 默认为“false”。 checkpoint_interval 否 Integer 快照时间间隔。 单位为秒,默认值为“10”。 checkpoint_mode 否 String 快照模式,。两种可选: exactly_once:数据只被消费一次。 at_least_once:数据至少被消费一次。 默认值为“exactly_once”。 log_enabled 否 Boolean 是否启用日志存储。默认为“false”。 obs_bucket 否 String OBS桶名。 root_id 否 Integer 父作业ID。 edge_group_ids 否 Array of Strings 边缘计算组ID列表。多个ID以逗号分隔。 manager_cu_number 否 Integer 管理单元CU数。默认为“1”。 graph_editor_enabled 否 Boolean 流图编辑开关。默认为“false”。 graph_editor_data 否 String 流图编辑数据。默认为null。 executor_number 否 Integer 作业使用计算节点个数。 executor_cu_number 否 Integer 计算节点cu数。 cu_number 否 Integer 用户为作业选择的CU数量。 “show_detail”为“true”时独有。 最小值:2 最大值:400 默认为“2”。 parallel_number 否 Integer 用户设置的作业并行数。 “show_detail”为“true”时独有。 最小值:1 最大值:2000 默认为“1”。 smn_topic 否 String SMN主题名。当作业异常时,向该SMN主题推送告警信息。 restart_when_exception 否 Boolean 是否开启异常重启功能。 resume_checkpoint 否 Boolean 异常自动重启时,是否从最新checkpoint恢复。默认值为“false”。 resume_max_num 否 Integer 异常重试最大次数。-1代表无限。 checkpoint_path 否 String 检查点保存路径。 idle_state_retention 否 Integer 空闲状态过期周期。 config_url 否 String 用户上传的config包OBS路径。 udf_jar_url 否 String 用户已上传到DLI资源管理系统的程序包名,用户sql作业的udf jar通过该参数传入。 dirty_data_strategy 否 String 作业脏数据策略。 “2:obsDir”:保存,obsDir表示脏数据存储路径。 “1”:抛出异常。 “0”:忽略。 entrypoint 否 String 用户已上传到DLI资源管理系统的程序包名,用户自定义作业主类所在的jar包。 dependency_jars 否 Array of Strings 用户已上传到DLI资源管理系统的程序包名,用户自定义作业的其他依赖包。 dependency_files 否 Array of Strings 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的依赖文件。 tm_cus 否 int 单TM所占CU数。 tm_slot_num 否 int 单TM Slot数。 image 否 String 自定义镜像。格式为:组织名/镜像名:镜像版本。 当用户设置“feature”为“custom”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用自定义的Flink镜像。关于如何使用自定义镜像,请参考《数据湖探索用户指南》。 feature 否 String 自定义作业特性。表示用户作业使用的Flink镜像类型。 basic:表示使用DLI提供的基础Flink镜像。 custom:表示使用用户自定义的Flink镜像。 flink_version 否 String Flink版本。当用户设置“feature”为“basic”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用的DLI基础Flink镜像的版本。 operator_config 否 String 各算子并行度参数,以json的形式展示各算子id和并行度。 static_estimator_config 否 String 静态流图资源预估参数,以json的形式展示。 runtime_config 否 String Flink作业运行时自定义优化参数。 real_cu_number 否 Integer 实际使用的CU数。默认值为“0”,表示此时以“cu_number”的值为准。
  • 在脚本中使用AI服务 推荐模型发布后,在图1中单击“使用”,可使用该推荐模型进行推荐。 系统支持使用服务编排或者脚本来调用推荐服务。 选择使用该推荐服务的应用,选择页签“在Script中使用”,单击“开发”。 图6 在脚本中使用 系统会自动为所选应用创建好调用该AI的脚本,代码示例如下: import * as aienable from 'aienable'; export class Input { @action.param({ type: "Any", required: false, description: "name" }) name: string; // name为已发布的预测/推荐服务名称 @action.param({ type: "Any", required: false, description: "input" }) dataInputs: JSON; } export class Output { @action.param({ type: "Any" }) result: JSON; } export class testAIEnable { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): void { let client = aienable.newClient("recommendation_services") let result = client.recommend(input.name, input.dataInputs); console.log(result) } } 单击编辑器上方的,保存脚本。 单击编辑器上方的,运行脚本。 在页面底部“输入参数”页签输入请求参数,在图6中“输入参数详情”区域单击获取,给入参即相关字段配上测试值。 单击测试窗口右上角的,执行脚本。 其中,“recipients_id”为5配置的接收人对象字段值,该场景表示接受推荐内容的客户ID。以下输入参数中“fff7466a253c0e59499ea943462c10f9”和“677ea793bab5253b52c7f73f0e120b74”为有效的客户ID,“6775ba6a3e92020abc8e6cd6e19e867a”为无效的客户ID,即该客户ID不存在。 “N”表示给接收人推荐的产品数量。 { "name": "test_02", "dataInputs": { "recipients_id": [ "fff7466a253c0e59499ea943462c10f9", "677ea793bab5253b52c7f73f0e120b74", "6775ba6a3e92020abc8e6cd6e19e867a" ], "N": 3 } } 输出以下结果,表示调用推荐服务成功,给有效客户ID的推荐内容为5配置的产品ID。其中“rating”值为预测接收人购买该产品的概率。这里看出,当输入无效客户ID时,不会推荐相关内容。 { resCode: '0', resMsg: '成功', result: { 677ea793bab5253b52c7f73f0e120b74: [ { aienable__productId__ CS T: '5727b4e9463bfa0b43bf97397c4b7c44', rating: 0.9780523919210801 }, { aienable__productId__CST: '58e3dad74a022a8e41571be503143e5b', rating: 0.9343108103239535 }, { aienable__productId__CST: '58efb9b638561ce132216a9a612513e2', rating: 0.9228962093643385 } ], fff7466a253c0e59499ea943462c10f9: [ { aienable__productId__CST: '5727b4e9463bfa0b43bf97397c4b7c44', rating: 1 }, { aienable__productId__CST: '57f2bc497c1a3ebe41ba7a06d78ed159', rating: 0.979109618457509 }, { aienable__productId__CST: '574597aaf385996112490308e37399ce', rating: 0.9502617871072747 } ] } } 单击编辑页面上方的,启用脚本。
  • 在服务编排中使用AI服务 推荐模型发布后,在图1中单击“使用”,可使用该推荐模型进行推荐。 系统支持使用服务编排或者脚本来调用推荐服务。 选择使用该推荐服务的应用,保持默认所选页签“在Flow中使用”,单击“开发”。 图2 在服务编排中使用 系统会自动为所选应用创建好“AIExample”文件夹和归属于该文件夹的服务编排。 在弹出的服务编排编辑页面查看如下信息。 在页面右侧选择,在全局上下文页面查看到系统已自动创建如下变量。 图3 查看变量 表4 变量说明 变量名 类型 描述 dataInputs 任意 输入参数。 resCode 文本 返回码,如果返回“0”代表请求成功。 resMsg 文本 返回消息,如果成功状态,通常会返回“成功”,其他情况会返回具体的错误信息。 result 任意 调用推荐服务请求返回的推荐内容。 查看整个服务编排的入参、出参。 图4 查看入参出参 选择推荐服务图元,查看配置信息。 图5 图元配置 单击编辑器上方的,保存服务编排。 单击编辑器上方的,运行服务编排。 输入入参,入参可从图2中“输入参数详情”区域单击获取,给入参即相关字段配上测试值。 其中,“recipients_id”为5配置的接收人对象字段值,该场景表示接受推荐内容的客户ID。以下输入参数中“fff7466a253c0e59499ea943462c10f9”和“677ea793bab5253b52c7f73f0e120b74”为有效的客户ID,“6775ba6a3e92020abc8e6cd6e19e867a”为无效的客户ID,即该客户ID不存在。 “N”表示给接收人推荐的产品数量。 { "dataInputs": { "recipients_id": [ "fff7466a253c0e59499ea943462c10f9", "677ea793bab5253b52c7f73f0e120b74", "6775ba6a3e92020abc8e6cd6e19e867a" ], "N": 3 } } 输出以下结果,表示调用推荐服务成功,给有效客户ID的推荐内容为5配置的产品ID。其中,“rating”值为预测接收人购买该产品的概率。这里看出,当输入无效客户ID时,不会推荐相关内容。 { "interviewId": "002N000000pLvvBbbBke", "outputs": { "resCode": "0", "resMsg": "成功", "result": { "677ea793bab5253b52c7f73f0e120b74": [ { "aienable__productId__CST": "5727b4e9463bfa0b43bf97397c4b7c44", "rating": 0.9780523919210801 }, { "aienable__productId__CST": "58e3dad74a022a8e41571be503143e5b", "rating": 0.9343108103239535 }, { "aienable__productId__CST": "58efb9b638561ce132216a9a612513e2", "rating": 0.9228962093643385 } ], "fff7466a253c0e59499ea943462c10f9": [ { "aienable__productId__CST": "5727b4e9463bfa0b43bf97397c4b7c44", "rating": 1 }, { "aienable__productId__CST": "57f2bc497c1a3ebe41ba7a06d78ed159", "rating": 0.979109618457509 }, { "aienable__productId__CST": "574597aaf385996112490308e37399ce", "rating": 0.9502617871072747 } ] } } } 单击编辑器上方的,启用服务编排。
  • 基于规则 “用户任务”图元接收人类型设置为“基于规则”时,可以将全局上下文中的变量拖入到条件输入框中。当条件输入框中的变量或条件为true时,将会把任务分配给选择框中配置的用户。您可以通过以下方式,配置接收任务的用户: 当前用户:把任务分配给执行当前用户任务的用户。 上级经理:把任务分配给执行当前用户任务的用户的上级经理。 特定的用户:把任务分配给选择框中选择的用户。 队列:把任务分配给选择框中选择的工作队列中的所有用户。 用户属性:根据用户对象的某一字段,进行任务的分配。 变量:根据输入框中的用户ID或用户名,将任务分配给相应的用户。 图6 基于规则
  • 用户和业务用户 在进行任务分配时,低代码平台提供了两种用户可以进行任务的分配,分别是用户和业务用户。 用户(User):是租户账号或子账号开发者,用来管理应用和业务用户。购买AstroZero的租户账号默认拥有所有权限,是管理员用户,可添加子账号并为其配置需要的权限。 业务用户(即PortalUser):是访问在AstroZero中开发的业务应用的用户账号,即业务应用的使用者。 用户可以在工作流中通过用户任务图元,在用户任务配置页面的“接收人”模块,通过以下三种方式将任务分配给用户或业务用户。 当前泳道 流程发起人的主管 名称和表达式 基于规则 图1 接收人类型
  • 当前泳道 “用户任务”图元接收人类型设置为“当前泳道”,将泳道和工作队列绑定,则处于该泳道的用户任务图元,由该泳道对应工作队列中的成员去处理。工作队列中的成员可以是多个用户、业务用户、公共组中成员、角色或带有下属的角色中成员。配置过程如下: 参考管理队列中操作,创建一个工作队列,将处理任务的用户或业务用户加入工作队列中。 例如,创建派单员工作队列“Dispatcher”。 图2 创建工作队列 如图3所示,“用户任务”的接收人类型选择“当前泳道”,可以将任务分配给“当前泳道角色的任意成员”或“当前泳道中的上一个任务被分配的人员”。 图3 用户任务中设置当前泳道接收 如图4所示,单击左侧泳道区域,在“泳道配置”中设置派单员工作队列“Dispatcher”。 处于该泳道的用户任务图元,则由工作队列“Dispatcher”中的成员去处理。 图4 设置泳道
  • 名称和表达式 “用户任务”图元接收人类型设置为“名称和表达式”时,可以通过“表达式”、“用户”和“组”三种方式分配该任务的参与者。这时,泳道中的工作队列配置不起作用。 图5 名称和表达式 用户:在“取值”中,选择接收该任务的用户,不包括业务用户。 组:在“取值”中选择公共组,则该任务由公共组的成员去处理。公共组的成员可以是用户、业务用户、其他公共组的成员、角色或带有下属的角色中成员。如何创建工作组,请参见管理公共组。 表达式:当将“参与者”配置为“表达式”时,实际是一个变量。在“取值”中,可设置变量的值,变量值支持以下几种: 用户的用户名或用户ID,其中用户名前需要加“user:”前缀。 业务用户的用户名或业务用户ID,其中业务用户名前需要加“puser:”前缀。 公共组名称或者公共组ID,其中公共组名称前需要加“group:”前缀。 角色名称或者角色ID,其中角色名称前需要加“role:”前缀。 例如,分配任务接受者为用户名为“PortalUser1”的业务用户、用户名为“User1”的用户、用户ID为“10XX000000XXXXXXX”的用户、公共组名称为“group1”和角色名称为“role1”的合集,则取值为“"puser:PortalUser1,user:User1,10XX000000XXXXXXX,group:group1,role:role1"”。多个取值之间用英文逗号“,”分隔,取值外加英文双引号。
  • 操作步骤 登录AstroZero服务控制台。 在实例页面,单击“进入首页”,进入新版应用开发页面。 在左侧导航栏中,单击“资产”,进入资产页面。 将鼠标放在已创建的Native Service上,单击,选择“编辑”。 在NativeService配置页面,选择“导航”。 在“API设计”页签,单击“开始设计API”。 图1 开始设计API 选择“使用模板”,配置基本信息和新URL对应的版本号,单击“创建”。 图2 创建一个新版本 openApi版本:接口定义需要符合openApi规范,这里配置具体openApi的版本号。 选择模板:选择系统预置的模板。 版本:输入服务版本号。 标题:原生服务API的名称。 创建完成后,单击“新增资源”。 在“增加资源及操作方法”页面,配置相关参数,单击“确认”。 图3 增加资源及操作方法配置页面 输入一个新的资源路径(以/开头):与镜像文件中的接口路径保持一致。 方法:调用的方法,如GET(查询)、PUT(增加)、POST(修改)、DELETE(删除)、PATCH(对资源进行部分修改)。 操作名称:与镜像文件中的操作名称保持一致。 公共接口:若勾选,则只能在公共接口中调用,无法在服务编排和脚本中使用。 内容类型:当勾选“公共接口”时,您需要配置内容类型,即请求中的body类型。其中,“application/x-www-form-urlencoded”、“application/xml”、“multipart/form-data”、“text/html”和“text/plain”用于文件上传接口,选择该内容类型,只能调用post类型的方法。 描述:描述信息。 单击生成的方法,可以在右侧编辑方法的URL、Header、Response参数,需要和镜像文件中接口的URL参数、Header参数、请求参数、返回参数保持一致。编辑参数后,需要单击参数操作列的,再单击“保存”。 您可参考界面上“/case”、“/case/{CaseId}”两个示例编辑生成的方法。每个方法都需要定义Response参数,否则会部署失败。返回体数据结构在模式对象中定义。 当Body参数和Response参数较多,一些参数可以封装成对象类型的参数,并在“模式对象”页签设置该类型参数,注意“模式对象”页签中参数名与操作中URL参数不能同名。 支持按照操作名称和资源路径单,过滤或组合过滤搜索方法。 图4 编辑方法 图5 定义模式对象 参考8~10,新增其他API方法。 编辑方法完成后,需要手动删除“/case”、“/case/{CaseId}”两个示例,删除示例模式对象。 单击“保存”,创建的自定义接口会出现在页面上。 在页面右上方,单击,可以查看自定义接口中的方法和模型对象。单击,可导出该原生服务下接口定义yaml文件。 单击,发布API。 发布后如果需要修改API,需要单击,取消发布后进行修改,修改后再保存并发布。 已发布的API可能在服务编排中已经使用,如果修改API导致不兼容,请同步修改引用该API的服务编排。
  • 如何在脚本、服务编排、工作流中加密数据? 用户使用AstroZero的脚本、服务编排、工作流等开发的内容是不会加密存储的。如果用户需要加密数据,请使用加密类型的系统参数。 参考如何创建系统参数中操作,新建加密类型的系统参数。 例如,新建加密参数appClientId,注意要勾选“是否加密”。 图5 新建appClientId系统参数 在脚本、服务编排和工作流中,使用上一步创建的系统参数。 脚本:脚本代码中引入系统参数的代码行中,引入系统库,并使用“sys.getParameter('appClientId')”引入系统参数。 import * as sys from 'sys'; ...... let cliendId = sys.getParameter('appClientId'); 图6 在脚本中引用参数appClientId 服务编排:在服务编排“全局上下文”中新增公式变量,表达式输入“SYSPA RAM ETER('appClientId')”,引入系统参数。 图7 在服务编排中引用参数appClientId 工作流:在工作流的“全局上下文”中,新增文本类型的变量,图元配置中设置该变量,值输入“SYSPARAMETER('appClientId')”,引入系统参数。 图8 在工作流中引用参数appClientId
  • 如何使用系统参数 系统参数创建完成后,可在脚本、服务编排和工作流等中使用。 脚本:脚本代码引入系统参数的代码行中,引入“sys”系统库,并使用“sys.getParameter('系统参数名')”引入系统参数。 例如,脚本里编辑如下代码,执行脚本,不用输入入参,查看“日志”页签打印的日志。 import * as sys from 'sys'; let sysParam = sys.getParameter('命名空间__APPName_MaxValue'); console.log("MaxValue:", sysParam); 图1 在脚本中使用 服务编排:在服务编排的“全局上下文”中,新增公式变量,表达式输入“SYSPARAMETER('系统参数名')”,引入系统参数,注意数据类型保持一致。 图2 在服务编排中使用 工作流:在工作流的“全局上下文”中,新增相同数据类型的变量,图元配置中设置该变量,值输入“SYSPARAMETER('系统参数名')”,引入系统参数。 图3 在工作流中使用 自定义连接器:在自定义连接器的“动作”页签,单击“新建”。在“新建动作”页面的URL内,使用“{!系统参数名}”方式引入系统参数。 图4 在自定义连接器中引入系统参数
  • 场景描述 新增、查询系统参数并进行修改。系统参数创建后,可以在其他地方以“{!parameter_name}”方式引用。例如,在如下两个场景使用系统参数: 将系统公用邮箱设置为系统参数。 将系统定时数据清理的执行时间,设置为系统参数。例如,系统执行数据清理任务时,会自动查询是否配置了系统参数“bingo.expiretask.execute.time”(AstroZero已预置该系统参数),查询到后,会按照配置的时间来启动数据清理。 本章节介绍的是在应用内配置系统参数,还可以在环境配置中创建系统参数,相关操作请参考配置系统参数。两者的区别是在应用中配置的系统参数,可在打包发布应用时,将系统参数一起发布出去。在环境配置中,设置的系统参数无法随应用发布出去。
共100000条