PushMeteringData - 推送计量数据

调用PushMeteringData推送计量数据。

接口说明

该命令只支持推送按量付费的计算巢服务实例的计量数据,推送的计量项需要定义为服务商上报。

请求参数

名称

类型

是否必选

描述

示例值

Metering

String

示例中的参数说明如下:

  • StartTime:计量开始时间。单位:秒。

  • EndTime:计量结束时间。单位:秒。

  • Entities:计量实体对象。

    • Key:计量项属性名称。

      • Frequency:使用次数(次)。

      • Period:使用小时时长(秒)。

        重要

        请求参数中的时长单位为秒,而计费单位为小时,因此计费时会转换为小时,如推送19:00-20:00的用量1800,计费价格为1元/小时,按小时出账该时段费用为1800/3600×1 = 0.5 元,费用如为小数,保留两位小数,超过两位舍弃。

      • Storage:使用存储空间(Byte)。

        重要

        请求参数中的单位为Byte,而计费单位为MB,因此计费时会转换为MB,如推送19:00-20:00的用量524288,计费价格为 1 元/MB,按小时出账该时段费用为524288/1024/1024×1=0.5 元,费用如为小数,保留两位小数,超过两位舍弃。

      • NetworkOut:上行使用流量(Bit)。

        重要

        请求参数中的单位为Bit,而计费单位为MB,因此计费时会转换为MB,如推送 19:00-20:00 的用量524288,计费价格为 1 元/MB,按小时出账该时段费用为 524288/1024/1024×1 = 0.5 元,费用如为小数,保留两位小数,超过两位舍弃。

      • NetworkIn:下行使用流量(Bit)。

        重要

        请求参数中的单位为Bit,而计费单位为MB,因此计费时会转换为MB,如推送 19:00-20:00 的用量524288,计费价格为1 元/MB,按小时出账该时段费用为 524288/1024/1024×1=0.5 元,费用如为小数,保留两位小数,超过两位舍弃。

      • Character:字符数(个)。

      • DailyActiveUser:日活跃用户数(DAU)。

      • PeriodMin:使用分钟时长(分钟)。

      • VirtualCpu:虚拟CPU核数。

    • Value:计量数值(取值>=0),参数类型为Integer。

说明
  • 如果商品设置为实时出账,StartTime和EndTime为任意时间宽度,但是EndTime一定要大于StartTime。

  • 如果商品设置为非实时出账(即选择按小时、按天、按月等),StartTime和EndTime的间隔必须大于5分钟。

[{"StartTime":"1664451045","EndTime":"1664451198","Entities":[{"Key":"Frequency","Value":"6"}]}]

Token

String

用于计算巢对比,判断推送方是否是服务商。

使用MD5加密算法对Metering&Key加密,加密为32位小写的值。

  • Metering:[{"StartTime":"1664451045","EndTime":"1664451198","Entities":[{"Key":"Frequency","Value":"6"}]}],如何获取请参见Metering

  • Key:服务Key。示例e98893f5ecc3ae1ctest,您可在服务详情页获取服务Key。

    说明

    Key全服务唯一,不会随版本变更而变化。

  • 待加密字符串:Metering=[{"StartTime":"1664451045","EndTime":"1664451198","Entities":[{"Key":"Frequency","Value":"6"}]}]&Key=e98893f5ecc3ae1ctest

  • 加密后的Token值:7aa81300b2aea77984b772495c8e4e83

返回参数

名称

类型

描述

示例值

RequestId

String

计算巢请求ID。

e6862d3a-9305-4289-8dd3-9c52a680228b

PushMeteringDataRequestId

String

云市场请求ID。

7lc658a2-tr41-****-****-c25es45vc248

Token

String

用于服务商对比数字签名。请参见计算巢校验数字签名说明

50130a063c6acf833280d23169898bd4

Success

Boolean

成功状态标识。

true

示例

本示例是云市场按量付费的计算巢商品创建的ECS中发起调用。

  1. 获取ECS地域信息

    在调用PushMeteringData前,您需要获取应用部署的ECS地域(regionld)信息。获取到的地域信息会在后续步骤中使用,因此需要服务商记录。

    1. 访问如下网址,获得地域信息。

      curl http://100.100.100.200/latest/meta-data/region-id
    2. 地域返回示例。

      cn-hangzhou
  2. 准备入参

    "Metering":"[{\"StartTime\":\"1664451045\",\"EndTime\":\"1664451198\",\"Entities\":[{\"Key\":\"Frequency\",\"Value\":\"6\"}]}]","Token":"7aa81300b2aea77984b772495c8e4e83"

    • Metering:[{\"StartTime\":\"1664451045\",\"EndTime\":\"1664451198\",\"Entities\":[{\"Key\":\"Frequency\",\"Value\":\"6\"}]}]

      说明

      由于本示例通过curl调用PushMeteringData,需要加入转译符号\。若使用代码调用,则不需要转译。

    • Token:将字符串Metering&服务Key通过MD5加密获取32位小写的值7aa81300b2aea77984b772495c8e4e83

  3. 请求示例

    curl -H "Content-Type: application/json" -XPOST https://cn-hangzhou.axt.aliyun.com/computeNest/marketplace/push_metering_data -d '{"Metering":"[{\"StartTime\":\"1664451045\",\"EndTime\":\"1664451198\",\"Entities\":[{\"Key\":\"Frequency\",\"Value\":\"6\"}]}]","Token":"7aa81300b2aea77984b772495c8e4e83"}'
    说明

    https://cn-hangzhou.axt.aliyun.comcn-hangzhou步骤1中获取的地域,具体调用时请按实际情况更换地域信息。

  4. 返回示例

    {
        "RequestId":"4ca591b5-bc30-****-****-c4d0ec5d24ed", 
        "Success":"true",
        "PushMeteringDataRequestId":"7lc658a2-tr41-****-****-c25es45vc248", 
        "Token":"50130a063c6acf833280d23169898bd4"
    }

错误码

错误码

错误信息

描述

OperationDenied

The serviceInstance does not supported push metering data.

非按量付费服务实例不支持推送。

Only metering entities classified as Custom and associated with a service can be pushed. The entity ${EntityId} is invalid.

计量项****不支持推送,需要设置为服务商上报且完成计量项绑定。

MissingParameter.${parametersName}

The input parameter "${parametersName}" that is mandatory for processing this request is not supplied.

参数缺失。

InvalidParameter.${parametersName}

The provided parameter "${parametersName}" is invalid.

参数非法。

EntityNotExist.ServiceInstance

The specified service instance cannot be found.

服务实例不存在(非计算巢创建的ECS)。