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-1user-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, stoprefund 时的自定义业务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 购买服务时间内对应着打折系数

详细服务价格计算请看价格核算文档

上次更新: 2021/6/16 上午8:38:11