yaml商品模板配置说明
供应商用户想将提供的服务信息注册到平台的话,则需要将服务信息写成yaml格式模版。通过使用供应商cli客户端,将yaml服务信息模版传送到供应商节点。经过节点验证模版信息后,传送至平台节点执行进一步解析和注册。
yaml 文件配置样例
provider: service-merchant-registration-demo-2
walletAddress: ATzEKTyxxxxxxxxxxxxxxxxxxxxxuTebug
apiHost: "demo-api-host"
serviceCategory:
- name: Container-Service
categoryDescription: "This is a category description for several service types."
apiHost: "category api"
options:
user-choose-option-1: &user-choose-option-1
- 1-choose-value-1
- 1-choose-value-2
- 1-choose-value-3
- 1-choose-value-4
- 1-choose-value-5
- 1-choose-value-6
user-choose-option-2: &user-choose-option-2
- 2-choose-value-1
- 2-choose-value-2
services:
- name: Demo-Service-Name-1
description: "Documentation for user to use this service: http:xxxxxxx"
apiHost: "11.42.119.90:3002"
refundable: true
options:
user-choose-option-1: *user-choose-option-1
user-choose-option-2: *user-choose-option-2
serviceFunctionApi:
start: "local http = require(\"VsysHttp\")\nlocal util = require(\"SystemUtils\")\nfunction start(inputTable)\n util.preventDefault()\n a = {} \t\n a[\"id\"]= inputTable[\"id\"] \t\n a[\"createdAt\"] = inputTable[\"createdAt\"] \t\n a[\"duration\"] = inputTable[\"duration\"] \t\n resp = http.postwosign(\"http://127.0.0.1:3004/service/secret\", a) \t\n return resp\nend"
stop: "local http = require(\"VsysHttp\")\nfunction stop(inputTable)\n a = {}\n a[\"id\"] = inputTable[\"id\"]\n a[\"createdAt\"] = inputTable[\"createdAt\"]\n resp = http.postwosign(\"http://127.0.0.1:3004/service/deploy/\"..a[\"id\"], a)\n return resp\nend"
refund: ""
durationToPrice:
- setA:
price: 100
chargingOptions:
user-choose-option-1: 1-choose-value-1
duration:
100: 0.9
200: 0.85
- setB:
price: 200
chargingOptions:
user-choose-option-1: 1-choose-value-2
duration:
100: 0.9
200: 0.85
- setC:
price: 500
chargingOptions:
user-choose-option-1: 1-choose-value-3
duration:
100: 0.9
200: 0.85
yaml 配置文件概览
字段 | 字段类型 | 必须 | 说明 |
---|---|---|---|
provider | string | True | 供应商名称需要在平台数据中唯一 |
walletAddress | string | True | 供应商VSYS钱包地址需要在平台数据中唯一 |
apiHost | string | True | 用户cli客户端请求的地址,一般用作请求用户 User Services |
serviceCategory | list | True | 供应商服务种类列表 |
yaml 配置文件 -- serviceCategory
serviceCategory
类型是yaml 的list,该配置变量下面包含供应商各个服务种类的配置。
字段 | 字段类型 | 必须 | 说明 |
---|---|---|---|
name | string | True | 服务种类名称 |
categoryDescription | string | False | 服务种类描述 |
apiHost | string | False | 该服务种类下的具体服务类型的备用api |
options | object | False | 该服务种类提供的服务选项 |
services | list | False | 服务种类列表 |
yaml 配置文件 -- serviceCategory
中的 options
options
为yaml 的 object
,里面的变量为用户自定义的 list
. 在样例中定义了两个服务选项 , 名称为user-choose-option-1
和 user-choose-option-2
. 这两个变量都为 list
,定义了此服务选项中可能的变量。为了方便下面具体service type 重新使用服务选项,每个服务选项后面都使用yaml &
语法。
options
中变量的数量没有限制。服务选项list
中的元素为string
。
yaml 配置文件 -- serviceCategory
中的 services
services
定义是服务种类下具体的服务。数据类型为list
。每个元素定义一个service type
。以下为定义一个serivice type
的变量说明。
字段 | 字段类型 | 必须 | 说明 |
---|---|---|---|
name | string | True | 具体服务的名称 |
description | string | False | 服务的描述,填写购买订单后,如何付款的操作,以及购买服务的使用说明 |
apiHost | string | False | 使用该服务的访问api host。若此变量为空,系统将会使用serviceCategory 的备用api host |
refundable | bool | True | 说明该服务能否让用户退款 |
options | object | True | 该服务使用到的该服务种类的 options |
serviceFunctionApi | object | False | 提供服务start , stop 和 refund 时的自定义业务lua脚本 |
durationToPrice | object | True | 定义基于使用到了服务选项中某个值的基础价格,以及超过某服务时间值后的打折系数 |
yaml 配置文件 -- services
中的 serviceFunctionApi
字段 | 字段类型 | 必须 | 说明 |
---|---|---|---|
start | string | False | 购买服务后,服务启动获取资源时运行的Lua脚本 |
stop | string | False | 服务到期后或用户提前结束订单,关闭服务资源时运行的Lua脚本 |
refund | string | False | 用户提前结束订单的退款Lua脚本 |
以上的lua脚本在本地编辑器编辑好后,需要进行URL 编码后再作为string
输入到对应字段中。
yaml 配置文件 -- services
中的 durationToPrice
字段 | 字段类型 | 必须 | 说明 |
---|---|---|---|
price | float64 | True | 服务的一小时单位价格 |
chargingOptions | dict | True | 该服务使用到的收费options |
duration | dict | True | 购买服务时间内对应着打折系数 |
详细服务价格计算请看价格核算文档
← 配置供应商SDK服务端 管理已上架的商品 →