华为云用户手册

  • 约束与限制 Pod互访限速设置需遵循以下约束: 约束类别 容器隧道网络模式 VPC网络模式 云原生2.0网络模式 支持的版本 所有版本都支持 v1.19.10以上集群版本 v1.19.10以上集群版本 支持的运行时类型 仅支持普通容器 支持的Pod类型 仅支持非HostNetwork类型Pod 支持的场景 支持Pod间互访、Pod访问Node、Pod访问Service的场景限速 限制的场景 无 无 不支持Pod访问100.64.0.0/10和214.0.0.0/8外部云服务网段的限速场景 不支持健康检查的流量限速场景 限速值取值范围 只支持单位M或G的限速配置,如100M,1G;最小取值1M,最大取值4.29G。
  • 通过kubectl命令行设置 您可以通过对工作负载添加annotations指定出口带宽和入口带宽,如下所示。 apiVersion: apps/v1 kind: Deployment metadata: name: test namespace: default labels: app: test spec: replicas: 2 selector: matchLabels: app: test template: metadata: labels: app: test annotations: kubernetes.io/ingress-bandwidth: 100M kubernetes.io/egress-bandwidth: 100M spec: containers: - name: container-1 image: nginx:alpine imagePullPolicy: IfNotPresent imagePullSecrets: - name: default-secret kubernetes.io/ingress-bandwidth:Pod的入口带宽 kubernetes.io/egress-bandwidth:Pod的出口带宽 如果不设置这两个参数,则表示不限制带宽。 修改Pod出/入口带宽限速后,需要重启容器才可生效。由于独立创建的Pod(不通过工作负载管理)修改annotations后不会触发容器重启,因此带宽限制不会生效,您可以重新创建Pod或手动触发容器重启。
  • 使用密钥设置工作负载的环境变量 使用控制台方式 登录CCE控制台,单击集群名称进入集群。 在左侧导航栏选择“工作负载”,单击右上角“创建工作负载”。 在创建工作负载时,在“容器配置”中找到“环境变量”,单击“新增变量”。 密钥导入:选择一个密钥,将密钥中所有键值都导入为环境变量。 密钥项键值导入:将密钥中某个键的值导入作为某个环境变量的值。 变量名称:工作负载中的环境变量名称,可自定义,默认为密钥中选择的键名。 变量/变量引用:选择一个密钥及需要导入的键名,将其对应的值导入为工作负载环境变量。 例如将mysecret这个密钥中“username”的值导入,作为工作负载环境变量“username”的值,导入后容器中将会有一个名为“username”的环境变量。 配置其他工作负载参数后,单击“创建工作负载”。 等待工作负载正常运行后,您可登录容器执行以下语句,查看该密钥是否已被设置为工作负载的环境变量。 printenv username 如输出与Secret中的内容一致,则说明该密钥已被设置为工作负载的环境变量。 使用kubectl方式 请参见通过kubectl连接集群配置kubectl命令。 创建并编辑nginx-secret.yaml文件。 vi nginx-secret.yaml YAML文件内容如下: 密钥导入:如果要将一个密钥中所有数据都添加到环境变量中,可以使用envFrom参数,密钥中的Key会成为工作负载中的环境变量名称。 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-secret spec: replicas: 1 selector: matchLabels: app: nginx-secret template: metadata: labels: app: nginx-secret spec: containers: - name: container-1 image: nginx:latest envFrom: # 使用envFrom来指定环境变量引用的密钥 - secretRef: name: mysecret # 引用的密钥名称 imagePullSecrets: - name: default-secret 密钥键值导入:您可以在创建工作负载时将密钥设置为环境变量,使用valueFrom参数单独引用Secret中的Key/Value。 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-secret spec: replicas: 1 selector: matchLabels: app: nginx-secret template: metadata: labels: app: nginx-secret spec: containers: - name: container-1 image: nginx:latest env: # 设置工作负载中的环境变量 - name: SECRET_USERNAME # 工作负载中的环境变量名称 valueFrom: # 使用valueFrom来指定环境变量引用的密钥 secretKeyRef: name: mysecret # 引用的密钥名称 key: username # 引用的密钥中的key - name: SECRET_PASSWORD # 添加多个环境变量参数,可同时导入多个环境变量 valueFrom: secretKeyRef: name: mysecret key: password imagePullSecrets: - name: default-secret 创建工作负载。 kubectl apply -f nginx-secret.yaml 创建完成后,查看Pod中的环境变量。 执行以下命令,查看已创建的Pod。 kubectl get pod | grep nginx-secret 预期输出如下: nginx-secret-*** 1/1 Running 0 2m18s 执行以下命令,查看该Pod中的环境变量。 kubectl exec nginx-secret-*** -- printenv SPECIAL_USERNAME SPECIAL_PASSWORD 如输出与Secret中的内容一致,则说明该密钥已被设置为工作负载的环境变量。
  • 检查Pod的EIP就绪 容器网络控制器会在Pod IP分配后,为Pod绑定EIP并回写分配结果至Pod的annotation(yangtse.io/allocated-ipv4-eip),Pod业务容器的启动时间可能早于EIP分配结果回写成功时间。 您可以尝试为Pod配置init container并使用downwardAPI类型的存储卷把yangtse.io/allocated-ipv4-eip的annotation通过volume挂载到init container里,并在init container中检查EIP是否已经分配成功。您可以参考以下示例配置init container。 apiVersion: v1 kind: Pod metadata: name: example annotations: yangtse.io/pod-with-eip: "true" yangtse.io/eip-bandwidth-size: "5" yangtse.io/eip-network-type: 5_bgp yangtse.io/eip-charge-mode: bandwidth yangtse.io/eip-bandwidth-name: "xxx" spec: initContainers: - name: init image: busybox:latest command: ['timeout', '60', 'sh', '-c', "until grep -E '[0-9]+' /etc/eipinfo/allocated-ipv4-eip; do echo waiting for allocated-ipv4-eip; sleep 2; done"] volumeMounts: - name: eipinfo mountPath: /etc/eipinfo volumes: - name: eipinfo downwardAPI: items: - path: "allocated-ipv4-eip" fieldRef: fieldPath: metadata.annotations['yangtse.io/allocated-ipv4-eip'] ...
  • 约束限制 绑定EIP的Pod,如果要被公网成功访问,需要添加放通相应请求流量的安全组规则。 单个Pod只能绑定单个EIP。 创建Pod时,可指定相关的annotation配置EIP的属性,创建完成后,更新EIP相关的annotation均无效。 与Pod关联的EIP不要通过弹性公网IP的console或API直接操作(修改名称/删除/解绑/绑定/转包周期等操作),否则可能导致EIP功能异常。 自动创建的EIP被手动删除后,会导致网络异常,需要重建Pod。
  • 约束与限制 使用对象存储时,挂载点不支持修改属组和权限。 对于并行文件系统,CCE支持通过OBS SDK方式和PVC挂载方式使用,其中PVC挂载方式是通过OBS服务提供的obsfs工具实现。在节点上每挂载一个并行文件系统对象存储卷,就会产生一个obsfs常驻进程。如下图所示: 图1 obsfs常驻进程 建议为每个obsfs进程预留1G的内存空间,例如4U8G的节点,则建议挂载obsfs并行文件系统的实例不超过8个。 obsfs常驻进程是直接运行在节点上,如果消耗的内存超过了节点上限,则会导致节点异常。例如在4U8G的节点上,运行的挂载并行文件系统卷的实例超过100+,有极大概率会导致节点异常不可用。因此强烈建议控制单个节点上的挂载并行文件系统实例的数量。 在使用obsfs工具时,还需遵循obsfs约束与限制。 安全容器不支持使用对象存储。 挂载普通桶时不支持硬链接(Hard Link)。 支持多个PV挂载同一个对象存储,但有如下限制: 多个不同的PVC/PV使用同一个底层对象存储卷时,如果挂载至同一Pod使用,会因为PV的volumeHandle参数值相同导致无法挂载,请避免该使用场景。 PV中persistentVolumeReclaimPolicy参数建议设置为Retain,否则可能存在一个PV删除时,级联删除底层卷,其他关联这个底层卷的PV会由于底层存储被删除导致使用出现异常。 重复用底层存储时,数据一致性由您自行维护。建议在应用层做好多读多写的隔离保护,合理规划文件使用时间,避免出现多个客户端写同一个文件的情况,防止产生数据覆盖和丢失。
  • 验证数据持久化及共享性 查看部署的应用及文件。 执行以下命令,查看已创建的Pod。 kubectl get pod | grep web-demo 预期输出如下: web-demo-846b489584-mjhm9 1/1 Running 0 46s web-demo-846b489584-wvv5s 1/1 Running 0 46s 依次执行以下命令,查看Pod的/data路径下的文件。 kubectl exec web-demo-846b489584-mjhm9 -- ls /data kubectl exec web-demo-846b489584-wvv5s -- ls /data 两个Pod均无返回结果,说明/data路径下无文件。 执行以下命令,在/data路径下创建static文件。 kubectl exec web-demo-846b489584-mjhm9 -- touch /data/static 执行以下命令,查看/data路径下的文件。 kubectl exec web-demo-846b489584-mjhm9 -- ls /data 预期输出如下: static 验证数据持久化 执行以下命令,删除名称为web-demo-846b489584-mjhm9的Pod。 kubectl delete pod web-demo-846b489584-mjhm9 预期输出如下: pod "web-demo-846b489584-mjhm9" deleted 删除后,Deployment控制器会自动重新创建一个副本。 执行以下命令,查看已创建的Pod。 kubectl get pod | grep web-demo 预期输出如下,web-demo-846b489584-d4d4j为新建的Pod: web-demo-846b489584-d4d4j 1/1 Running 0 110s web-demo-846b489584-wvv5s 1/1 Running 0 7m50s 执行以下命令,验证新建的Pod中/data路径下的文件是否更改。 kubectl exec web-demo-846b489584-d4d4j -- ls /data 预期输出如下: static static文件仍然存在,则说明数据可持久化保存。 验证数据共享性 执行以下命令,查看已创建的Pod。 kubectl get pod | grep web-demo 预期输出如下: web-demo-846b489584-d4d4j 1/1 Running 0 7m web-demo-846b489584-wvv5s 1/1 Running 0 13m 执行以下命令,在任意一个Pod的/data路径下创建share文件。本例中选择名为web-demo-846b489584-d4d4j的Pod。 kubectl exec web-demo-846b489584-d4d4j -- touch /data/share 并查看该Pod中/data路径下的文件。 kubectl exec web-demo-846b489584-d4d4j -- ls /data 预期输出如下: share static 由于写入share文件的操作未在名为web-demo-846b489584-wvv5s的Pod中执行,在该Pod中查看/data路径下是否存在文件以验证数据共享性。 kubectl exec web-demo-846b489584-wvv5s -- ls /data 预期输出如下: share static 如果在任意一个Pod中的/data路径下创建文件,其他Pod下的/data路径下均存在此文件,则说明两个Pod共享一个存储卷。
  • 通过控制台创建工作负载类型的容器网络配置 登录CCE控制台。 单击集群名称进入集群,在左侧选择“配置中心”,选择“网络配置”页签。 集群中存在默认容器网络配置default-network,对所有未配置自定义容器网络配置的Pod生效,“总览”页面的网络信息中的“默认容器子网”即为default-network中的容器子网。 查看“自定义容器网络配置”,单击“添加自定义容器网络配置”,在弹窗中配置容器子网和安全组等信息。 名称:自定义容器网络配置名称,最长支持253个字符。default-network、default、mgnt0、mgnt1四个名称为系统预留,请勿使用。 关联资源类型:自定义容器网络配置关联的资源类型,详情请参见表1。创建命名空间类型的容器网络配置请选择“工作负载”类型。 容器子网:请选择子网。若无子网可选请单击后方的“创建子网”进行创建,创建完成后单击刷新按钮。最多可选择 20 个子网。 关联安全组:默认为容器ENI安全组,您也可以选择单击后方的“创建安全组”进行创建,创建完成后单击刷新按钮。最多可选择5个安全组。 图3 创建工作负载类型的容器网络配置 完成基本配置后单击“创建”,创建完成后页面自动返回到自定义容器网络配置列表,可以看到新创建的容器网络配置已在列表中。 图4 容器网络配置列表 在创建工作负载时,可选择自定义的容器网络配置。 在左侧导航栏中选择“工作负载”,在右侧选择“无状态负载”页签。 单击页面右上角“创建工作负载”,在“高级配置”中选择“网络配置”页签,并选择是否开启指定容器网络配置。 选择一个已有的容器网络配置。如果没有可用的网络配置,可单击“添加自定义容器网络配置”进行创建。 图5 选择容器网络配置 工作负载其余信息都配置完成后,单击“创建工作负载”。 返回到“配置中心”,在容器网络配置列表里可以看到创建的容器网络配置关联的资源名称。 图6 查看容器网络配置关联的资源
  • 删除网络配置 您可以查看新添加网络配置的YAML,也可以对新添加的配置进行“删除”操作。 在删除网络配置时,需先删除该配置所对应的容器,否则将删除失败。 执行以下命令筛选集群中使用该配置的Pod(其中example为示例配置名称,请自行替换): kubectl get po -A -o=jsonpath="{.items[?(@.metadata.annotations.cni\.yangtse\.io/network-status=='[{\"name\":\"example\"}]')]['metadata.namespace', 'metadata.name']}" 返回结果中包含了该配置关联的Pod名字及命名空间。 删除创建该Pod的Owner,其Owner可能为Deployment、StatefulSet、DaemonSet或Job类型的工作负载。
  • 操作场景 CCE Turbo集群支持以命名空间或工作负载粒度设置容器所在的容器子网及安全组,该功能通过名为NetworkAttachmentDefinition的CRD资源实现。如您想为指定的命名空间或工作负载配置指定的容器子网和安全组,可创建自定义容器网络配置(NetworkAttachmentDefinition),并将该容器网络配置与相应的命名空间或工作负载关联,进而实现业务的子网划分或业务安全隔离的述求。 目前容器网络配置(NetworkAttachmentDefinition)支持关联的资源类型对比如下: 表1 关联资源类型对比 维度 容器网络配置(NetworkAttachmentDefinition)关联的资源类型 命名空间 工作负载 容器网络划分维度说明 容器网络配置关联的命令空间下创建的所有工作负载使用相同的子网配置跟安全组配置 指定了相同容器网络配置的工作负载使用相同的子网配置跟安全组配置 支持的集群版本 仅在CCE Turbo集群中可用,且集群为1.23.8-r0、1.25.3-r0及以上版本 仅在CCE Turbo集群中可用,且集群为1.23.11-r0、1.25.6-r0、1.27.3-r0、1.28.1-r0及以上版本 约束限制 不同容器网络配置之间的命名空间不可重复 只能指定未关联命名空间的自定义容器网络配置
  • 约束与限制 仅默认容器网络配置 default-network 支持开启网卡预热,使用自定义容器网络配置的Pod的创建速度相对使用默认容器网络配置的Pod会稍慢一些,因此不适用于极速Pod弹性场景。 默认容器网络配置 default-network 不支持删除。 已开启固定IP的工作负载,如果需要关联新的容器网络配置,Pod重建时,固定IP功能会失效。请删除工作负载并释放已经固定的IP,然后重新创建工作负载。 如需删除创建的自定义容器网络配置(NetworkAttachmentDefinition),请先删除对应的命名空间下使用该配置创建的Pod(带有名为“cni.yangtse.io/network-status”的annotation),详情请参见删除网络配置。
  • 通过控制台创建命名空间类型的容器网络配置 登录CCE控制台。 单击集群名称进入集群,在左侧选择“配置中心”,选择“网络配置”页签。 集群中存在默认容器网络配置default-network,对所有未配置自定义容器网络配置的Pod生效,“总览”页面的网络信息中的“默认容器子网”即为default-network中的容器子网。 查看“自定义容器网络配置”,单击“添加自定义容器网络配置”,在弹窗中配置容器子网和安全组等信息。 名称:自定义容器网络配置名称,最长支持253个字符。default-network、default、mgnt0、mgnt1四个名称为系统预留,请勿使用。 关联资源类型:自定义容器网络配置关联的资源类型,详情请参见表1。创建命名空间类型的容器网络配置请选择“命名空间”类型。 命名空间:请选择您需要关联的命名空间。不同容器网络配置之间关联的命名空间不可重复。若无命名空间可选请单击后方的“创建命名空间”进行创建。 容器子网:请选择子网。若无子网可选请单击后方的“创建子网”进行创建,创建完成后单击刷新按钮。最多可选择 20 个子网。 关联安全组:默认为容器ENI安全组,您也可以选择单击后方的“创建安全组”进行创建,创建完成后单击刷新按钮。最多可选择5个安全组。 图1 创建命名空间类型的容器网络配置 完成基本配置后单击“创建”,创建完成后页面自动返回到自定义容器网络配置列表,可以看到新创建的容器网络配置已在列表中。 图2 容器网络配置列表
  • 使用场景 默认情况下,kubelet使用 CFS 配额 来执行Pod的CPU约束。 当节点上运行了很多CPU密集的Pod时,工作负载可能会迁移到不同的CPU核, 这取决于调度时Pod是否被扼制,以及哪些CPU核是可用的。许多应用对这种迁移不敏感,因此无需任何干预即可正常工作。有些应用对CPU敏感,CPU敏感型应用有如下特点。 对CPU throttling 敏感 对上下文切换敏感 对处理器缓存未命中敏感 对跨Socket内存访问敏感 期望运行在同一物理CPU的超线程 如果您的应用有以上其中一个特点,可以利用Kubernetes中提供的CPU管理策略为应用分配独占的CPU核(即CPU绑核),提升应用性能,减少应用的调度延迟。CPU manager会优先在一个Socket上分配资源,也会优先分配完整的物理核,避免一些干扰。
  • 为Pod设置独占CPU Pod设置独占CPU(即CPU绑核)有如下几点要求: 节点上开启静态(static)CPU管理策略,具体方法请参见开启CPU管理策略。 Pod的定义里都要设置requests和limits参数,requests和limits必须为整数,且数值一致。 如果有init container需要设置独占CPU,init container的requests参数建议与业务容器设置的requests参数一致(避免业务容器未继承init container的CPU分配结果,导致CPU manager多预留一部分CPU)。更多信息请参见App Containers can't inherit Init Containers CPUs - CPU Manager Static Policy。 在使用时您可以利用调度策略(亲和与反亲和)将如上配置的Pod调度到开启静态(static)CPU管理策略的节点上,这样就能够达到独占CPU的效果。 设置独占CPU的YAML示例如下: kind: Deployment apiVersion: apps/v1 metadata: name: test spec: replicas: 1 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - name: container-1 image: nginx:alpine resources: requests: cpu: 2 # 必须为整数,且需要与limits中一致 memory: 2048Mi limits: cpu: 2 # 必须为整数,且需要与requests中一致 memory: 2048Mi imagePullSecrets: - name: default-secret
  • YAML示例(ICAgent) 您可以通过在YAML定义的方式设置容器日志存储路径。 如下所示,使用EmptyDir挂载到容器的“/var/log/nginx”路径下,这样ICAgent就会采集容器“/var/log/nginx”路径下的日志。其中policy字段是CCE自定义的字段,能够让ICAgent识别并采集日志。 apiVersion: apps/v1 kind: Deployment metadata: name: testlog namespace: default spec: selector: matchLabels: app: testlog template: replicas: 1 metadata: labels: app: testlog spec: containers: - image: 'nginx:alpine' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: - name: vol-log mountPath: /var/log/nginx policy: logs: rotate: '' volumes: - emptyDir: {} name: vol-log imagePullSecrets: - name: default-secret 使用HostPath方法如下所示,相比EmptyDir就是volume的类型变成hostPath,且需要配置hostPath在主机上的路径。下面示例中将主机上“/tmp/log”挂载到容器的“/var/log/nginx”路径下,这样ICAgent就会采集容器“/var/log/nginx”路径下的日志,且日志还会在主机的“/tmp/log”路径下存储。 apiVersion: apps/v1 kind: Deployment metadata: name: testlog namespace: default spec: replicas: 1 selector: matchLabels: app: testlog template: metadata: labels: app: testlog spec: containers: - image: 'nginx:alpine' name: container-0 resources: requests: cpu: 250m memory: 512Mi limits: cpu: 250m memory: 512Mi volumeMounts: - name: vol-log mountPath: /var/log/nginx readOnly: false extendPathMode: PodUID policy: logs: rotate: Hourly annotations: pathPattern: '**' format: '' volumes: - hostPath: path: /tmp/log name: vol-log imagePullSecrets: - name: default-secret 表2 关键参数解释 参数 解释 说明 extendPathMode 主机扩展路径 通过实例的ID或者容器的名称扩展主机路径,实现同一个主机路径下区分来自不同容器的挂载。 会在原先的“卷目录/子目录”中增加一个三级目录。使用户更方便获取单个Pod输出的文件。 None:不配置拓展路径。 PodUID:Pod的ID。 PodName:Pod的名称。 PodUID/ContainerName:Pod的ID/容器名称。 PodName/ContainerName:Pod名称/容器名称。 policy.logs.rotate 日志转储 此处日志转储是指日志的本地绕接。 设置:AOM每分钟扫描一次日志文件,当某个日志文件超过50MB时,会立即对其转储(转储时会在该日志文件所在的目录下生成一个新的zip文件。对于一个日志文件,AOM只保留最近生成的20个zip文件,当zip文件超过20个时,时间较早的zip文件会被删除),转储完成后AOM会将该日志文件清空。 不设置:若您在下拉列表框中选择“不设置”,则AOM不会对日志文件进行转储。 说明: AOM的日志绕接能力是使用copytruncate方式实现的,如果选择了设置,请务必保证您写日志文件的方式是append(追加模式),否则可能出现文件空洞问题。 当前主流的日志组件例如Log4j、Logback等均已经具备日志文件的绕接能力,如果您的日志文件已经实现了绕接能力,则无需设置。否则可能出现冲突。 建议您的业务自己实现绕接,可以更灵活的控制绕接文件的大小和个数。 policy.logs.annotations.pathPattern 采集路径 设置采集路径可以更精确的指定采集内容,当前支持以下设置方式: 不设置则默认采集当前路径下.log .trace .out文件 设置**表示递归采集5层目录下的.log .trace .out文件 设置*表示模糊匹配 例子: 采集路径为/tmp/**/test*.log表示采集/tmp目录及其1-5层子目录下的全部以test开头的.log文件。 注意: 使用采集路径功能请确认您的采集器ICAgent版本为5.12.22或以上版本。 policy.logs.annotations.format 多行日志匹配 有些程序打印的日志存在一条完整的日志数据跨占多行(例如 Java 程序日志)情况,日志采集系统默认是按行采集。如果您想在日志采集系统中按整条显示日志,可以开启多行日志,采用时间或正则匹配的方式,当某行日志匹配上预先设置的时间格式或正则表达式,就认为是一条日志的开头,而下一个行首出现作为该条日志的结束标识符。 格式如下 { "multi": { "mode": "time", "value": "YYYY-MM-DD hh:mm:ss" } } multi表示分行模式: time:日志时间,请输入时间通配符。时间通配符填写参考示例:如日志中的时间是2017-01-01 23:59:59,按照规则应该填写:YYYY-MM-DD hh:mm:ss。 regular:正则模式,请输入正则表达式。
  • 使用ICAgent采集日志 在工作负载中可以单独配置日志采集策略,此策略需要使用ICAgent。 在CCE中创建工作负载时,在配置容器信息时可以设置容器日志。 单击添加日志策略。 以nginx为例,不同工作负载根据实际情况配置。 图1 添加日志策略 存储类型有“主机路径”和“容器路径”两种类型可供选择: 表1 配置日志策略 参数 参数说明 存储类型 主机路径:HostPath模式,将主机路径挂载到指定的容器路径(挂载路径)。用户可以在节点的主机路径中查看到容器输出在挂载路径中的日志信息。 容器路径:EmptyDir模式,将节点的临时路径挂载到指定的路径(挂载路径)。临时路径中存在的但暂未被采集器上报到AOM的日志数据在Pod实例删除后会消失。 主机路径 请输入主机的路径,如:/var/paas/sys/log/nginx 挂载路径 请输入数据存储要挂载到容器上的路径,如:/tmp 须知: 请不要挂载到系统目录下,如“/”、“/var/run”等,否则会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,工作负载创建失败。 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。 AOM只采集最近修改过的前20个日志文件,且默认采集两级子目录。 AOM只采集挂载路径下的“.log”、“.trace”、“.out”文本日志文件。 容器中挂载点的权限设置方法,请参见为Pod或容器配置安全性上下文。 主机扩展路径 仅“主机路径”类型需要填写 通过实例的ID或者容器的名称扩展主机路径,实现同一个主机路径下区分来自不同容器的挂载。 会在原先的“卷目录/子目录”中增加一个三级目录。使用户更方便获取单个Pod输出的文件。 None:不配置拓展路径。 PodUID:Pod的ID。 PodName:Pod的名称。 PodUID/ContainerName:Pod的ID/容器名称。 PodName/ContainerName:Pod名称/容器名称。 采集路径 设置采集路径可以更精确的指定采集内容,当前支持以下设置方式: 不设置则默认采集当前路径下.log .trace .out文件 设置**表示递归采集5层目录下的.log .trace .out文件 设置*表示模糊匹配 例子: 采集路径为/tmp/**/test*.log表示采集/tmp目录及其1-5层子目录下的全部以test开头的.log文件。 注意: 使用采集路径功能请确认您的采集器ICAgent版本为5.12.22或以上版本。 日志转储 此处日志转储是指日志的本地绕接。 设置:AOM每分钟扫描一次日志文件,当某个日志文件超过50MB时会对其转储(转储时会在该日志文件所在的目录下生成一个新的zip文件。对于一个日志文件,AOM只保留最近生成的20个zip文件,当zip文件超过20个时,时间较早的zip文件会被删除)。 不设置:若您在下拉列表框中选择“不设置”,则AOM不会对日志文件进行转储。 说明: AOM的日志绕接能力是使用copytruncate方式实现的,如果选择了设置,请务必保证您写日志文件的方式是append(追加模式),否则可能出现文件空洞问题。 当前主流的日志组件例如Log4j、Logback等均已经具备日志文件的绕接能力,如果您的日志文件已经实现了绕接能力,则无需设置。否则可能出现冲突。 建议您的业务自己实现绕接,可以更灵活的控制绕接文件的大小和个数。 单击“确定”,并完成创建工作负载。
  • 通过工作负载YAML进行DNS配置 您也可以通过YAML的方式创建工作负载,以nginx应用为例,其YAML文件中的DNS配置示例如下: apiVersion: apps/v1 kind: Deployment metadata: name: nginx namespace: default spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: container-1 image: nginx:latest imagePullPolicy: IfNotPresent imagePullSecrets: - name: default-secret dnsPolicy: None dnsConfig: options: - name: ndots value: '5' - name: timeout value: '3' nameservers: - 10.2.3.4 searches: - my.dns.search.suffix dnsPolicy字段说明: dnsPolicy字段是应用设置的DNS策略,默认值为“ClusterFirst”。dnsPolicy当前支持四种参数值: 表1 dnsPolicy字段说明 参数 说明 ClusterFirst(默认值) 即在默认DNS配置中追加自定义的域名解析配置。应用会默认对接CoreDNS(CCE集群的CoreDNS默认级联云上DNS),自定义填写的dnsConfig会追加到默认DNS参数中。这种场景下,容器既能够解析service注册的集群内部域名,也能够解析发布到互联网上的外部域名。由于该配置下,域名解析文件设置了search搜索域列表和ndots: 5,因此当访问外部域名和集群内部长域名(如kubernetes.default.svc.cluster.local)时,大部分域名都会优先遍历search搜索域列表,导致至少有6次无效的DNS查询,只有访问集群内部短域名(如kubernetes)时,才不存在无效的DNS查询。 ClusterFirstWithHostNet 对于配置主机网络(hostNetwork)的应用,默认对接Pod所在节点域名解析配置,即kubelet的“--resolv-conf”参数指向的域名解析文件(CCE集群在该配置下对接云上DNS)。如需对接集群的Kube-DNS/CoreDNS,dnsPolicy字段需设置为ClusterFirstWithHostNet,此时容器的域名解析文件配置与“ClusterFirst”一致,也存在无效的DNS查询。 ... spec: containers: - image: nginx:latest imagePullPolicy: IfNotPresent name: container-1 restartPolicy: Always hostNetwork: true dnsPolicy: ClusterFirstWithHostNet Default 即继承Pod所在节点域名解析配置,并在此基础上追加自定义的域名解析配置。容器的域名解析文件使用kubelet的“--resolv-conf”参数指向的域名解析文件(CCE集群在该配置下对接云上DNS),没有配置search搜索域列表和options。该配置只能解析注册到互联网上的外部域名,无法解析集群内部域名,且不存在无效的DNS查询。 None 即替换默认的域名解析配置,完全使用自定义的域名解析配置。设置为None之后,必须设置dnsConfig字段,此时容器的域名解析文件将完全通过dnsConfig的配置来生成。 此处如果dnsPolicy字段未被指定,其默认值为ClusterFirst,而不是Default。 dnsConfig字段说明: dnsConfig为应用设置DNS参数,设置的参数将合并到基于dnsPolicy策略生成的域名解析文件中。当dnsPolicy为“None”,应用的域名解析文件完全由dnsConfig指定;当dnsPolicy不为“None”时,会在基于dnsPolicy生成的域名解析文件的基础上,追加dnsConfig中配置的dns参数。 表2 dnsConfig字段说明 参数 说明 options DNS的配置选项,其中每个对象可以具有name属性(必需)和value属性(可选)。该字段中的内容将合并到基于dnsPolicy生成的域名解析文件的options字段中,dnsConfig的options的某些选项如果与基于dnsPolicy生成的域名解析文件的选项冲突,则会被dnsConfig所覆盖。 nameservers DNS的IP地址列表。当应用的dnsPolicy设置为“None”时,列表必须至少包含一个IP地址,否则此属性是可选的。列出的DNS的IP列表将合并到基于dnsPolicy生成的域名解析文件的nameserver字段中,并删除重复的地址。 说明: 容器DNS配置文件中nameserver最多可设置3个DNS地址: 当dnsPolicy设置为ClusterFirst时,如果集群使用CoreDNS,除CoreDNS地址外可追加2个自定义DNS地址,超出部分无效。 当dnsPolicy设置为ClusterFirst时,如果集群同时使用CoreDNS和NodeLocal DNSCache,除CoreDNS和NodeLocal DNSCache地址外可追加1个自定义DNS地址,超出部分无效。 searches 域名查询时的DNS搜索域列表,此属性是可选的。指定后,提供的搜索域列表将合并到基于dnsPolicy生成的域名解析文件的search字段中,并删除重复的域名。Kubernetes最多允许6个搜索域。
  • 工作负载的DNS配置实践 前面介绍了Linux系统域名解析文件以及Kubernetes为应用提供的DNS相关配置项,下面将举例介绍应用如何进行DNS配置。 场景1 对接Kubernetes内置的Kube-DNS/CoreDNS 场景说明: 这种方式适用于应用中的域名解析只涉及集群内部域名,或者集群内部域名+外部域名两种方式,应用默认采用这种配置。 示例: apiVersion: v1 kind: Pod metadata: namespace: default name: dns-example spec: containers: - name: test image: nginx:alpine dnsPolicy: ClusterFirst imagePullSecrets: - name: default-secret 该配置下容器的域名解析文件将如下所示: nameserver 10.247.3.10 search default.svc.cluster.local svc.cluster.local cluster.local options ndots:5 场景2 直接对接云DNS 场景说明: 这种方式适用于应用只访问注册到互联网的外部域名,该场景不能解析集群内部域名。 示例: apiVersion: v1 kind: Pod metadata: namespace: default name: dns-example spec: containers: - name: test image: nginx:alpine dnsPolicy: Default #使用kubelet的“--resolv-conf”参数指向的域名解析文件(CCE集群在该配置下对接云DNS) imagePullSecrets: - name: default-secret 该配置下容器的域名解析文件将如下所示: nameserver 100.125.x.x 场景3 主机网络模式的应用对接Kube-DNS/CoreDNS 场景说明: 对于配置主机网络模式的应用,默认对接云DNS,如果应用需要对接Kube-DNS/CoreDNS,需将dnsPolicy设置为“ClusterFirstWithHostNet”。 示例: apiVersion: v1 kind: Pod metadata: name: nginx spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - name: nginx image: nginx:alpine ports: - containerPort: 80 imagePullSecrets: - name: default-secret 该配置下容器的域名解析文件将如下所示: nameserver 10.247.3.10 search default.svc.cluster.local svc.cluster.local cluster.local options ndots:5 场景4 自定义应用的域名配置 场景说明: 用户可以完全自定义配置应用的域名解析文件,这种方式非常灵活,dnsPolicy和dnsConfig配合使用,几乎能够满足所有使用场景,如对接用户自建DNS的场景、串联多个DNS的场景以及优化DNS配置选项的场景等等。 示例1:对接用户自建DNS 该配置下,dnsPolicy为“None”,应用的域名解析文件完全根据dnsConfig配置生成。 apiVersion: v1 kind: Pod metadata: namespace: default name: dns-example spec: containers: - name: test image: nginx:alpine dnsPolicy: "None" dnsConfig: nameservers: - 10.2.3.4 #用户自建DNS的IP地址 searches: - ns1.svc.cluster.local - my.dns.search.suffix options: - name: ndots value: "2" - name: timeout value: "3" imagePullSecrets: - name: default-secret 该配置下容器的域名解析文件将如下所示: nameserver 10.2.3.4 search ns1.svc.cluster.local my.dns.search.suffix options timeout:3 ndots:2 示例2:修改域名解析文件的ndots选项,减少无效的DNS查询 该配置下,dnsPolicy不为“None”,会在基于dnsPolicy生成的域名解析文件的基础上,追加dnsConfig中配置的dns参数。 apiVersion: v1 kind: Pod metadata: namespace: default name: dns-example spec: containers: - name: test image: nginx:alpine dnsPolicy: "ClusterFirst" dnsConfig: options: - name: ndots value: "2" #该配置会将基于ClusterFirst策略生成的域名解析文件的ndots:5参数改写为ndots:2 imagePullSecrets: - name: default-secret 该配置下容器的域名解析文件将如下所示: nameserver 10.247.3.10 search default.svc.cluster.local svc.cluster.local cluster.local options ndots:2 示例3:串联使用多个DNS apiVersion: v1 kind: Pod metadata: namespace: default name: dns-example spec: containers: - name: test image: nginx:alpine dnsPolicy: ClusterFirst # 追加域名解析配置,集群中会默认对接CoreDNS dnsConfig: nameservers: - 10.2.3.4 # 用户自建DNS的IP地址 imagePullSecrets: - name: default-secret 容器DNS配置文件中nameserver最多可设置3个DNS地址: 当dnsPolicy设置为ClusterFirst时,如果集群使用CoreDNS,除CoreDNS地址外可追加2个自定义DNS地址,超出部分无效。 当dnsPolicy设置为ClusterFirst时,如果集群同时使用CoreDNS和NodeLocal DNSCache,除CoreDNS和NodeLocal DNSCache地址外可追加1个自定义DNS地址,超出部分无效。 该配置下容器的域名解析文件将如下所示: nameserver 10.247.3.10 10.2.3.4 search default.svc.cluster.local svc.cluster.local cluster.local options ndots:5
  • DNS配置项说明 在Linux系统的节点或者容器里执行cat /etc/resolv.conf命令,能够查看到DNS配置,以Kubernetes集群的容器DNS配置为例: nameserver 10.247.x.x search default.svc.cluster.local svc.cluster.local cluster.local options ndots:5 配置项说明: nameserver:容器解析域名时查询的DNS服务器的IP地址列表。如果设置为10.247.x.x说明DNS对接到Kube-DNS/CoreDNS,如果是其他IP地址,则表示采用云上DNS或者用户自建的DNS。 search:定义域名的搜索域列表,当访问的域名不能被DNS解析时,会把该域名与搜索域列表中的域依次进行组合,并重新向DNS发起请求,直到域名被正确解析或者尝试完搜索域列表为止。对于CCE集群来说,容器的搜索域列表配置3个域,当解析一个不存在的域名时,会产生8次DNS查询,因为对于每个域名需要查询两次,分别是IPv4和IPv6。 options:定义域名解析配置文件的其他选项,常见的有timeout、ndots等等。 Kubernetes集群容器的域名解析文件设置为options ndots:5,该参数的含义是当域名的“.”个数小于ndots的值,会先把域名与search搜索域列表进行组合后进行DNS查询,如果均没有被正确解析,再以域名本身去进行DNS查询。当域名的“.”个数大于或者等于ndots的值,会先对域名本身进行DNS查询,如果没有被正确解析,再把域名与search搜索域列表依次进行组合后进行DNS查询。 如查询www.***.com域名时,由于该域名的“.”个数为2,小于ndots的值,所以DNS查询请求的顺序依次为:www.***.com.default.svc.cluster.local、www.***.com.svc.cluster.local、 www.***.com.cluster.local和 www.***.com,需要发起至少7次DNS查询请求才能解析出该域名的IP。可以看出,这种配置在访问外部域名时,存在大量冗余的DNS查询,存在优化点。 完整的Linux域名解析文件配置项说明可以参考文档:http://man7.org/linux/man-pages/man5/resolv.conf.5.html。
  • 通过控制台进行工作负载DNS配置 Kubernetes为应用提供了与DNS相关的配置选项,通过对应用进行DNS配置,能够在某些场景下有效地减少冗余的DNS查询,提升业务并发量。以下步骤以nginx应用为例,介绍如何通过控制台为工作负载添加DNS配置。 登录CCE控制台,单击集群名称进入集群,在左侧选择“工作负载”,在右上角单击“创建工作负载”。 设置工作负载基本参数,详情请参见创建工作负载。 在“高级配置”中,选择“DNS配置”页签,并按需填写以下参数。 DNS策略:控制台中提供的DNS策略与YAML中的dnsPolicy字段对应,详情请参见表1。 追加域名解析配置:即dnsPolicy字段设置为ClusterFirst,此时容器中既能够解析service注册的集群内部域名,也能够解析发布到互联网上的外部域名。 替换域名解析配置:即dnsPolicy字段设置为None,此时必须填写“IP地址”和“搜索域”参数。容器将仅使用自定义的IP地址和搜索域配置进行域名解析。 继承Pod所在节点域名解析配置:即dnsPolicy字段设置为Default,此时容器将使用Pod所在节点的域名解析配置,无法解析集群内部域名。 可选对象:即dnsConfig字段中的options参数。每个对象可以具有name属性(必需)和value属性(可选),填写完成后需单击“确认添加”。 timeout:超时时间 (s)。 ndots:域名中必须出现的"."的个数。如果域名中的"."的个数不小于ndots,则该域名为一个全限定域名,操作系统会直接查询;如果域名中的"."的个数小于ndots,操作系统会在搜索域中进行查询。 域名解析服务器地址:即dnsConfig字段中的nameservers参数,您可对自定义的域名配置域名服务器,值为一个或一组DNS IP地址。 搜索域:即dnsConfig字段中的searches参数,表示域名查询时的DNS搜索域列表,此属性是可选的。指定后,提供的搜索域列表将合并到基于dnsPolicy生成的域名解析文件的search字段中,并删除重复的域名。 启用hostAliases:配置Pod的本地配置文件“/etc/hosts”,可以将域名和IP地址映射加入到hosts文件中,在本地系统中实现简单的域名解析。更多使用详情请参见使用HostAliases向Pod /etc/hosts文件添加条目。 图1 工作负载DNS配置 单击“创建工作负载”。
  • URI GET /v2/bases/conversions 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 measure_type 否 Integer - 度量类型。 1:货币 2:时长 3:流量 4:数量 6:长度 7:容量 9:行数 10:周期 11:频率 12:个数 15:容量*时长 16:带宽速率 17:容量时长 18:查询速率 19:带宽速率(1000进制) 20:性能测试用量 21:面积 22:视频 23:吞吐量 24:分辨率 26:通用资源包抵扣单位 27:核数*时长 28:内存*时长 29:IOPS*时长 30:吞吐量*时长 31:个/时长 40:流量(1000进制) 41:1K Tokens 82:帧 98:缓存带宽x时长 此参数不携带或携带值为空或携带值为null时,不作为筛选条件;不支持携带值为空串。
  • 错误码说明 表1 错误码 状态码 错误码 错误码信息 错误码描述 200 CBC.0000 Success. 成功。 403 CBC.0150 Access denied. The customer does not belong to the website you are now at. 访问拒接,不是本站点客户。 400 CBC.18000016 Insufficient permissions. Contact your associated partner. 权限不足,请联系您的合作伙伴。 400 CBC.18000048 Too many independent accounting members. Specify a member account for query. 您名下的财务独立子,超过系统可支持查询的数量,请指定企业子账号查询。 200 CBC.3002 The resource has been locked. 资源被锁定。 200 CBC.3006 Unsupported cloud service type. 云服务类型不支持。 200 CBC.3016 Expired resources exist. 存在过期资源。 200 CBC.30050007 It is not a primary resource, and the renewal quotation is not allowed. 资源非主资源,不允许续费询价。 200 CBC.30050008 The period type or number of periods for the resource does not exist. 资源不存在对应的的周期类型或周期数。 200 CBC.30050009 The resources do not exist or has been deleted due to expiration. 资源已过期删除或不存在。 200 CBC.30050010 This operation is not allowed because some resources are included in the unpaid orders. 当前操作的资源中,有资源包含在您的待支付的订单,不能进行当前操作。 200 CBC.30050011 The resources are being unsubscribed from or changed. 资源正在退订或者变更。 200 CBC.30050013 The product cannot be renewed. 该产品不支持续费。 200 CBC.3106 The order status has changed and no payment can be made. 订单状态已发生变更,不能进行支付操作。 200 CBC.3112 The coupon or stored-value card has been used. 优惠券或储值卡已被使用。 200 CBC.3124 Resources have been unsubscribed from. 资源已经退订。 200 CBC.3144 Resources are being unsubscribed from or changed. 资源正在退订或者变更。 200 CBC.3128 The resource does not have renewed periods or its renewed periods have taken effect, and the renewal periods cannot be unsubscribed from. 资源无已续费周期或续费周期已生效,不支持退订续费周期。 200 CBC.3141 Cloud service quota or capacity is insufficient, or the resource specifications have changed. 云服务配额或容量不足或规格发生变化。 200 CBC.3155 Insufficient enterprise project fund quota, or invalid project. 企业项目资金配额不足/项目不可用。 200 CBC.3162 The add-on package you purchased does not meet payment requirements. 您购买的加油包不满足支付条件。 200 CBC.3185 The cloud service can only be unsubscribed from as a whole. 云服务必须整体退订。 200 CBC.3605 Automaticrenewal has been canceled and you cannnot perform the current operation. 自动续费已取消,不可进行当前操作。 200 CBC.3638 Subscription to bandwidth add-on packages cannot be renewed. 带宽加油包不能续费。 200 CBC.3640 Bandwidth add-on packages cannot be unsubscribed from. 有加油包的资源,不能退订。 200 CBC.5023 The account type does not match the association type. 账户类型与合作伙伴关联类型不匹配。 200 CBC.5041 Resources in this order have been unsubscribed. 该订单中的资源已经退订。 200 CBC.5042 Resources cannot be found. 资源无法找到。 200 CBC.6001 Required param resource id or riInstanceId is null or empty. 资源ID或者预留实例ID为空。 200 CBC.6055 Calculate result exceeds max value. 询价结果超过金额最大限制。 200 CBC.6006 The required product cannot be found. 找不到您询价的产品。 400 CBC.0100 parameter error. 输入参数校验失败。 400 CBC.0101 Invalid parameter. 参数无效。 400 CBC.18000014 Inactive Cost Management. 未开通成本中心。 400 CBC.18000030 Cost data query is not supported when associated accounts are unbound. 不支持查询未与主客户关联的账号的成本数据。 500 CBC.30000010 Invalid order (maybe the order does not exist), unable to operate. 无效订单(可能是订单不存在),不能进行操作。 400 CBC.30000052 The resource or account has been already frozen. 已冻结,不能执行此操作。 400 CBC.30010001 Auto-renewal not supported. Selected resources no longer available. 您所购买的产品已下架,不支持自动续费。 400 CBC.30010035 resource deleted. 资源已被删除。 400 CBC.30010036 Renewal is only supported for primary resources. 续费的资源非主资源,不允许续费。 400 CBC.30010069 The renewal period does not exist. 不存在的续费周期。 400 CBC.30050006 Automatic order payment failed. 订单自动支付失败。 400 CBC.30050012 Duplicate resource ID. 存在重复的资源ID。 400 CBC.5003 Insufficient balance. 余额不足。 400 CBC.5037 The invoice amount is zero. 无可开票金额。 400 CBC.50000020 The coupon can only be allocated to the specified recipient. 该代金券只适用于指定客户。 400 CBC.50000021 The recipient specified for the quota is not a customer of the tier-2 reseller. 此额度的指定客户不是该二级经销商的子客户。 400 CBC.50010085 Customer association not allowed. The account of this partner has been restricted. 该伙伴企业目前处于受限状态,无法拓客创建关联关系。 400 CBC.50010086 Customer association not allowed. This partner is a Huawei Cloud reseller, and the account of its associated distributor has been restricted. 该伙伴是云经销商,其关联的总经销商企业目前处于受限状态,无法拓客创建关联关系。 400 CBC.50010105 Failed to allocate a coupon quota to the reseller who is withdrawing from the Distribution Partner Program. 无法给退出中的云经销商发放代金券额度 400 CBC.70300008 Only an enterprise master account can send SMS verification codes. 非企业主不能发送短信验证码。 400 CBC.70600026 Huawei Cloud cannot review the information you submitted for real-name authentication. Contact your account manager. 抱歉,华为云暂无法审核您提交的实名认证信息,请联系您的客户经理协助。 400 CBC.70900002 You can only create an enterprise member account through the HIS platform. 您的账号需要通过华为云HIS平台创建企业子账号。 400 CBC.8003 The customer has a negative consumption bill cycle or order is not included in the billing bill cycle or order set. 客户有负向消费的账期或订单未包含在本次开票账期或订单集合内。 400 CBC.8007 Marketplace does not support billing by bill cycle. 云商店开票不支持按账期开票。 400 CBC.8008 Invoices are issued based on orders. The request contains multiple same orders (reserved). 按订单开票,请求中存在多个相同的订单(预留)。 400 CBC.8009 Invoices are issued by bill cycle. The request contains multiple same bill cycles. 按账期开票,请求中存在多个相同的账期。 400 CBC.8012 The invoice remarks or enterprise registration address contains characters that cannot be parsed by the GBK. 发票备注或企业注册地址中包含gbk无法解析的字符。 400 CBC.8016 The billing amount of an electronic invoice cannot exceed US$1 million. 电子票的开票金额不得高于100万。 400 CBC.8202 The invoice cloud is not interconnected. Electronic invoices cannot be issued. 未对接发票云,暂不支持开具电子发票。 400 CBC.8207 Inaccurate billed amount 开票金额不正确。 400 CBC.8210 The actual invoicing amount cannot be greater than the permitted invoicing amount. 开票金额不能大于实际可开票金额。 400 CBC.8211 The actual invoicing account cannot be greater than the permitted invoicing account. 开票金额小于最低可开票金额。 400 CBC.8214 The subscriber account is locked. 用户账号已被冻结。 400 CBC.8215 3: Real-name authentication failed. 用户实名认证失败。 400 CBC.8216 Individual invoices cannot be issued as special invoices. 个人发票不允许开专票。 400 CBC.8217 * Lessor Taxpayer Identification Number (Uniform Social Credit Code) 纳税人识别号或统一社会信用代码校验失败。 400 CBC.8218 Invoices are issued by order. The order list is empty or the number of orders exceeds the maximum (reserved). 按订单开票,订单列表为空或者超过最大条数(预留)。 400 CBC.8224 Postpaid users cannot be billed by order on HUAWEI CLOUD. 后付费用户华为云开票不支持按订单开票。 400 CBC.8232 Value added tax (VAT) special invoices cannot be issued for E-invoices. 电子发票不可开具增值税普通发票。 400 CBC.99000004 An exception occurred when the customer authorized rights to the partner. 客户向伙伴授权时发生异常。 400 CBC.99000011 Set commercial discounts 设置折扣失败。 400 CBC.99000012 The quota does not exist or the quota status is incorrect. 额度不存在或者额度状态不正确。 400 CBC.99000013 Specifies the preference amount. 优惠券额度不足。 400 CBC.99000014 The coupon cannot be sent to customers of this cooperation type. 该券不能发给该合作类型的客户。 400 CBC.99000015 Issue coupons failed. The status of the quota does not support coupon allocation. 此状态的额度不支持发放。 400 CBC.99000016 The customer does not exist or is not a customer of the partner. 该子客户不存在或者不是该伙伴子客户。 400 CBC.99000017 The quota has not taken effect or has expired. 额度未生效或者已过期。 400 CBC.99000018 The maximum value cannot be smaller than the minimum value. 券面值不得小于最小值。 400 CBC.99000019 The minimum value cannot be greater than the maximum value. 券面值不得大于最大值。 200 CBC.99000020 The number of customers exceeds the license limit. 券数量超过最大限制。 200 CBC.99000021 The total face value of coupons cannot exceed the total face value. 券总面值不允许超过总面值。 400 CBC.99000022 The coupon can be sent only to the associated customer for the first time. 该券只能发给首次关联的子客户。 400 CBC.99000023 The cloud service limit or product limit of the coupon exceeds the limit. 券的云服务限制、产品限制超出额度的限制。 400 CBC.99000024 The coupon usage limit (subscription type list) is not within the limit range. 券的使用限制条件配置(订购类型列表),不在额度配置的限制条件范围内。 400 CBC.99000025 This type of partners cannot issue coupons to themselves. 该类伙伴不能给自己发券。 400 CBC.99000026 Incorrect verification code. 验证码错误。 400 CBC.99000027 Expired verification code. 验证码过期。 400 CBC.99000029 The mobile number already exists. 手机号码已存在。 400 CBC.99000030 The mobile number exceeds the limit. 手机号码超出限制。 400 CBC.99000031 Invalid DomainName. DomainName无效。 400 CBC.99000034 Currently, registration with HUAWEI CLOUD is not available to users in this country. 目前不支持该国家客户注册华为云。 400 CBC.99000036 Invalid password. 客户密码格式不合法。 400 CBC.99000037 You do not have the permission to operate this Huawei Cloud reseller. 您没有操作该云经销商的权限。 400 CBC.99000038 The account name already exists. 客户登录名已经存在。 400 CBC.99000039 xAccountId exists. xaccountId重复。 400 CBC.99000041 Only the unified discount can be queried. 只支持查询统一折扣。 400 CBC.99000043 Business owner fails to grant/recover to business subcustomer. 企业主账号向企业子账号拨款/回收失败。 400 CBC.99000046 Insufficient budget. 预算不足。 400 CBC.99000047 Balances account not exist 账户不存在。 400 CBC.99000049 BindType can not be resale. 转售子客户无账户余额。 400 CBC.99000082 You have exceeded the maximum verification code requests allowed. 客户发送验证码次数超过限制。 400 CBC.99000084 Querying account statements not supported for resellers or authorized distributors. 不支持伙伴的代售类、转售类客户查询收支明细。 400 CBC.99000086 Ensure that you are associated with the member account for the independent accounting and your account has the same legal person with that of the member account. 不存在正常的企业主子关系,需企业主子同一法人且企业子财务独立模式。 400 CBC.99000087 An error occurred. Try again later. 抱歉,当前操作出现异常,请稍后再试。 400 CBC.99000088 We have received your payment and it is currently being processed. Please do not attempt to make the payment again. 抱歉,支付处理中,请勿重复操作。 400 CBC.99000089 The current operation can only be performed on combined orders. 抱歉,当前订单号不能操作,请使用组合交易单号操作。 400 CBC.99000092 Incorrect subscription period. 订购周期校验失败。 400 CBC.99003004 The resource has dependencies. 资源存在依赖。 400 CBC.99003012 The resource ID does not exist. 资源ID不存在。 400 CBC.99003016 The resources have expired and been deleted or do not exist. 资源已过期删除或不存在。 400 CBC.99003100 This operation is not allowed because some resources are included in your orders to be paid. 当前操作的资源中,有资源包含在您的待支付的订单,不能进行当前操作。 400 CBC.99003106 The order status has changed and no payment can be made. 订单状态已发生变更,不能进行支付操作。 400 CBC.99003108 Unavailable discount. 您选择的折扣不可用。 400 CBC.99003110 The order has not been paid before the expiration time. Please re-submit the order. 订单已经过了支付截止时间,请重新提交订单。 400 CBC.99003112 The coupon or stored-value card has been used. 优惠券或储值卡已被使用。 400 CBC.99003115 An error occurred. Try again later. 抱歉,当前操作出现异常,请稍后再试。 400 CBC.99003116 The restriction to selected coupon regulates that the coupon cannot be used with the discount at the same time. 选择的优惠券限制不能和折扣同时使用。 400 CBC.99003117 The selected discount is less than the minimum discount rate configured for the selected coupon. Note: For example, if the minimum discount rate configured for a coupon is 90% and the selected discount is less than 90% in all order lines, the discount cannot be used. 选择的优惠券配置了最小折扣比例,而选择的折扣小于这个折扣比例。 例如:优惠券配置的最小折扣比例为90%,而选择的折扣在所有订单行上都小于90%,则该折扣不可使用。 400 CBC.99003124 Resources have been unsubscribed from. 资源已经退订。 400 CBC.99003128 The resource does not have renewed periods or its renewed periods have taken effect, and the renewal periods cannot be unsubscribed from. 资源无已续费周期或续费周期已生效,不支持退订续费周期。 400 CBC.99003141 Cloud service quota or capacity is insufficient, or the resource specifications have changed. 云服务配额或容量不足或规格发生变化。 400 CBC.99003144 Resources are being unsubscribed from or changed. 资源正在退订或者变更。 400 CBC.99003147 Discounts and cash coupons cannot be used together. 代金券和折扣券不能同时使用。 400 CBC.99003151 This discount cannot be used together with other discounts. 您选择的折扣不可与其他折扣一起使用。 400 CBC.99003154 The sum of the existing and renewal durations has exceeded the maximun. Select another renewal duration. 资源已购买时长加本次续费时长后已超过最大值,请重新选择续费时长。 400 CBC.99003155 Insufficient enterprise project fund quota, or invalid project. 企业项目资金配额不足/项目不可用。 400 CBC.99003156 Coupons applicable to Marketplace products cannot be used together with dedicated coupons. 云商店券和专用代金券不能同时使用。 400 CBC.99003162 The payment time must be earlier than the specified effective time. 支付时间超过设定的生效时间。 400 CBC.99003185 The cloud service can only be unsubscribed from as a whole. 云服务必须整体退订。 400 CBC.99003198 Insufficient organization budget. 企业组织预算不足。 400 CBC.99003602 Automatic renewal is not supported for expired or frozen resources. 资源已过期或被冻结,不允许自动续费。 400 CBC.99003605 Theautomatic renewal has been canceled. The current operation cannot be performed. 自动续费已取消,不可进行当前操作。 400 CBC.99003608 Select products cannot be changed to pay-per-use. 严选产品不能设置转按需。 400 CBC.99003609 The billing mode of this product type cannot be converted into pay-per-use. 该产品类型不支持转按需。 200 CBC.99003610 The billing mode of resources in the grace or retention period cannot be converted into pay-per-use. 宽限期、保留期资源不能转按需。 400 CBC.99003611 The billing mode of pay-per-usage packages cannot be converted into pay-per-use. 按需套餐包不能设置转按需。 400 CBC.99003622 The billing mode of solutions cannot be converted into pay-per-use. 解决方案产品不能设置转按需。 400 CBC.99003623 Cannot be converted into the pay-per-use billing mode because there are transactions being processed. 存在其他处理中交易不能转按需。 400 CBC.99003624 Cannot be converted into the pay-per-use billing mode because the resource has been frozen due to security reasons. 违规冻结资源不允许设置转按需。 400 CBC.99003625 Freeze resources cannot be changed to pay-per-use. 公安冻结资源不允许设置转按需。 400 CBC.99003626 Cannot be converted into the pay-per-use billing mode because this account has been frozen. 账号已经被冻结,不允许设置转按需。 400 CBC.99003631 Unsubscribed,deleted, and released resources cannot be renewed. 退订/删除/释放的资源不能续费。 400 CBC.99003634 Resources in discount packages must be renewed as a whole and cannot be renewed together with other resources. 参与优惠套餐活动的资源需要整体续费,不能和其他资源一起续费。 400 CBC.99003638 Subscription to bandwidth add-on packages cannot be renewed. 带宽加油包资源不能续费。 400 CBC.99003643 Unsubscriptionis not allowed for cloud services that have been invoiced. 已开发票的云服务不允许退订 400 CBC.99003645 Unsubscription not supported for the service type of the resource. 该类型的云服务不支持退订。 400 CBC.99003647 Unsubscription not supported for this pay-per-use package. 该按需套餐包不支持退订。 400 CBC.99003649 Unsubscription not supported for cloud services in trial use. 试用云服务不支持退订。 400 CBC.99003650 Unsubscription not supported for this cloud service from the KooGallery. 云市场中的该云服务不允许退订。 400 CBC.99003651 Unsubscription not supported. An operation associated with this instance is in progress. 交易正在进行中,不可以退订。 400 CBC.99003652 Unsubscription is not supported for DevCloud packages. 软开云套餐不能退订。 400 CBC.99003654 This renewal period cannot be canceled because it includes an add-on bandwidthpackage. 存在带宽加油包,不允许退订续费周期。 400 CBC.99003656 Unsubscription not supported for resources frozen due to security reasons. 已经被公安冻结的云服务不支持退订。 400 CBC.99004006 Failed to verify the mobile number. 手机号校验失败。 400 CBC.99004008 Invalid verification code. 有验证码,但是已经失效。 400 CBC.99004009 The verification code is available, but the number of verification failures is greater than 3. 有验证码,但是校验失败次数已经大于3。 400 CBC.99004010 The verification code entered is incorrect. 校验客户端输入的验证码错误。 400 CBC.99005001 You has not been a partner. 非合作伙伴。 400 CBC.99005003 Your balance is insufficient. 余额不足。 400 CBC.99005010 Orders in this state cannot be canceled. 订单状态不允许取消。 400 CBC.99005036 The customer does not support payment via interface. 该客户不支持使用接口支付。 400 CBC.99005026 The order is not a degrade or unsubscription order. 该订单不是降配或者退订订单。 400 CBC.99005042 The resource cannot be found or unsubscribed from. 资源无法找到或者不能退订。 400 CBC.99006006 Product not found. 产品未发现。 400 CBC.99006016 Failed to query coupon information. 查询优惠券信息失败。 400 CBC.99006017 Failed to query customer details. 查询客户信息失败。 400 CBC.99006024 Failed to query product information. 查询产品信息失败。 400 CBC.99006050 Incorrect usage measurement unit. 使用量单位错误。 400 CBC.99006055 The queried amount exceeds the upper limit. 询价结果超过金额最大限制。 400 CBC.99006066 An error occurred during the query of the fee information. 查询费用信息错误。 400 CBC.99006073 项目不存在。 Project not found. 400 CBC.99006074 The billing item does not exist. 计费因子不存在。 400 CBC.99006093 Failed to obtain tax rate information. 获取不到税率信息。 400 CBC.99007000 Can not find customer. 客户不存在。 400 CBC.99007004 The initiated service operation does not meet the service check item requirement. 发起的业务操作存在不满足的业务检查项。 400 CBC.99007009 The transaction ID is duplicated. 交易事务ID重复。 400 CBC.99007181 The validity period of the transferred or recovered credit line has expired. 划拨或回收的信用额度的有效期已过期。 400 CBC.99007197 Your IP has been throttled. 您的IP已经被限流。 400 CBC.99007490 You are not allowed to develop customers or create enterprise member accounts because you are now withdrawing from the Distribution Partner Program. 您的账号关联的是退出中的云经销商,禁止创建企业子。 400 CBC.99008040 Too many attempts. 操作频繁。 400 CBC.50000010 Coupon issuance not supported. Your coupon quota has been converted. 您已是伙伴用券模式,无法发放代金券。 401 CBC.0154 Invalid or expired token. token非法/过期。 403 CBC.0150 Invalid operation. 非法操作。 403 CBC.0151 Access denied. 访问拒绝。 403 CBC.0155 The request was a valid request, but the server is refusing to respond to it. 不允许执行当前请求。 403 CBC.8225 Billing by received amount can only be initiated by CBC (reserved). 按到款开票只允许从CBC发起(预留)。 429 CBC.0250 Connection request control triggered. 消息流量控制。 500 CBC.0999 Other errors. 其他错误。 500 CBC.7001 Failed to allocate money to the member account because the primary account is not associated with the sub-account. 企业主账号与子账号不存在关联,不能直接向企业子账号拨款。 500 CBC.7004 The initiated service operation does not meet the service check item requirement. 发起的业务操作存在不满足的业务检查项。 500 CBC.7181 the validity period of the credit line allocated or recovered has expired. 划拨或回收的信用额度的有效期已过期。 500 CBC.7228 Invalid password. 客户密码格式不合法。 500 CBC.8005 No report data. 消费子表数据为空。 500 CBC.8006 Failed to obtain the subscription entity of the subscriber. 获取用户所在签约主体失败。 500 CBC.8203 Value added tax (VAT) special invoices cannot be issued for E-invoices. 电子发票不可开具增值税专用发票。 500 CBC.8209 The bill cycle list is empty or the number of bill cycles exceeds the maximum. 按账期开票,账期列表为空或者超过最大条数。 500 CBC.8231 Outstanding amount. 欠费金额错误。 500 CBC.99007461 You have unfinished allocation or withdrawal tasks. Please try again later. 您当前存在尚未完成的拨款或回收任务,请稍后再试。
  • Web UI 客户可在费用中心退订已购买的包年/包月资源。 进入“退订管理”页面。 开通了企业组织多级管理服务的客户可以在“退订管理”的下拉选项框中筛选该客户下各个子组织的名称,查询各子组织的可退订记录。 单击“创建成功资源退订”页签。 单个资源退订与批量退订可使用不同的操作方式: 退订单个资源:单击待退订资源所在行的“退订资源”。 批量退订:在退订列表中勾选需要退订的资源,单击列表左上角的“退订资源”。 查看退订信息,退订资源。 5天无理由全额退订:确认退订信息,单击“退订”。 非5天无理由退订:勾选“我已确认本次退订将收取手续费”后,单击“退订”。
  • REST API 客户在自建平台完成包年/包月资源的退订。 首先要成功支付包年/包月产品,产生一条开通成功的包年/包月资源,才能进行退订。 该接口只允许使用客户AK/SK或者Token调用。 调用接口后,如果某个主资源ID有对应的从资源ID,系统会将主资源ID和从资源ID一起退订,存在主从资源关系的资源为: 云主机为主资源,对应的从资源为云硬盘 共享带宽的情况下,带宽为主资源,对应的从资源为弹性IP(可能包含多个IP) 独享带宽的情况下,弹性IP为主资源,对应的从资源为带宽 该接口支持5天无理由全额退订,具体规则请参见“退订规则说明”。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 描述 400 CBC.0100 参数错误。 400 CBC.0101 参数无效。 403 CBC.0155 不允许执行当前请求。 原因可能为账号鉴权信息不正确、账号或子账号没有接口调用权限。 500 CBC.0999 其他错误。
  • 请求消息 请求参数 无。 请求示例 GET https://bss.myhuaweicloud.com/v2/orders/customer-orders?order_id=CS1905251035OA1AF&customer_id=c9e731c4663646988ef4cdb3122837b6&create_time_begin=2020-05-06T08:05:01Z&create_time_end=2020-05-07T08:05:01Z&service_type_code=hws.service.type.obs&status=5&order_type=1&limit=10&offset=0&order_by=-createTime&payment_time_begin=2020-05-06T08:05:01Z&payment_time_end=2020-05-07T08:05:01Z HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ
  • URI GET /v2/orders/customer-orders 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 order_id 否 String 最大长度:64 订单ID。大小写不敏感。 此参数不携带或携带值为空时,不作为筛选条件;携带值为null时,作为筛选条件;不支持携带值为空串。 说明: 使用特殊字符进行查询的时候,请注意进行URL编码转换,如“%”的转码应为“%25”。 customer_id 否 String 最大长度:64 客户账号ID。 此参数不携带时,不作为筛选条件;携带值为null时,作为筛选条件;不支持携带值为空或携带值为空串。 create_time_begin 否 String 最大长度:20 订单创建开始时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单创建开始时间与订单创建结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 create_time_end 否 String 最大长度:20 订单创建结束时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单创建开始时间与订单创建结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 service_type_code 否 String 最大长度:64 云服务类型编码,例如OBS的云服务类型编码为"hws.service.type.obs"。大小写不敏感。 您可以调用查询云服务类型列表接口获取。 此参数不携带或携带值为空时,不作为筛选条件;携带值为空串或携带值为null时,作为筛选条件。 status 否 Integer - 订单状态: 1:待审核 3:处理中 4:已取消 5:已完成 6:待支付 9:待确认 此参数不携带或携带值为空或携带值为null时,不作为筛选条件;不支持携带值为空串。 order_type 否 String 最大长度:64 订单类型: 1:开通 2:续订 3:变更 4:退订 10:包年/包月转按需 11:按需转包年/包月 13:试用 14:转商用 15:费用调整 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 limit 否 Integer [1-100] 每次查询的订单数量,默认值为10。 此参数不携带或携带值为空或携带值为null时,取默认值10;不支持携带值为空串。 offset 否 Integer [0-最大整数] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null时,取默认值0;不支持携带值为空串。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 示例1,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 示例2,查询总数20条,期望每页返回10条数据,则获取第一页数据,入参offset填写0,limit填写10;获取第二页数据,入参offset填写10,limit填写10。 order_by 否 String 最大长度:36 查询的订单列表排序。大小写不敏感。 支持按照创建时间进行排序,带-表示倒序。 创建时间:升序为createTime,倒序为-createTime。 此参数不携带或携带值为空或携带值为空串或携带值为null时,按照创建时间倒序排列。 payment_time_begin 否 String 最大长度:20 订单支付开始时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单支付开始时间与订单支付结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。 payment_time_end 否 String 最大长度:20 订单支付结束时间。 UTC时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',如“2019-05-06T08:05:01Z”。 其中,HH范围是0~23,mm和ss范围是0~59。 订单支付开始时间与订单支付结束时间间隔不能超过1年。 此参数不携带或携带值为空时,不作为筛选条件;不支持携带值为空串或携带值为null。
  • URI GET /v2/bills/customer-bills/res-fee-records URL参数说明请参见下表。 表1 消息头参数 参数 是否必选 参数类型 取值范围 描述 X-Language 否 String 最大长度:10 语言。 en_US:英文 zh_CN:中文 表2 查询参数 参数 是否必选 参数类型 取值范围 描述 cycle 是 String 最大长度:10 查询的资源消费记录所在账期,东八区时间,格式:YYYY-MM。 charge_mode 否 String 最大长度:4 计费模式。 1:包年/包月 3:按需 10:预留实例 11:节省计划 此参数不携带时,不作为筛选条件;不支持携带值为空或携带值为空串或携带值为null。 cloud_service_type 否 String 最大长度:64 云服务类型编码,例如OBS的云服务类型编码为“hws.service.type.obs”。您可以调用查询云服务类型列表接口获取。 此参数不携带时,不作为筛选条件;携带值为空或携带值为空串时,作为筛选条件。 region 否 String 最大长度:64 云服务区编码,例如:“cn-north-1”。具体请参见地区和终端节点对应云服务的“区域”列的值。 此参数不携带时,不作为筛选条件;携带值为空或携带值为空串时,作为筛选条件。 bill_type 否 Integer - 账单类型。 1:消费-新购 2:消费-续订 3:消费-变更 4:退款-退订 5:消费-使用 8:消费-自动续订 9:调账-补偿 12:消费-按时计费 13:消费-退订手续费 14:消费-服务支持计划月末扣费 16:调账-扣费 18:消费-按月付费 20:退款-变更 23:消费-节省计划抵扣 24:退款-包年/包月转按需 此参数不携带或携带值为空时,不作为筛选条件。 offset 否 Integer [0-最大整数] 偏移量,从0开始。默认值为0。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 示例1,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 示例2,查询总数20条,期望每页返回10条数据,则获取第一页数据,入参offset填写0,limit填写10;获取第二页数据,入参offset填写10,limit填写10。 limit 否 Integer [1-1000] 每次查询的数量限制。默认值为10。 resource_id 否 String 最大长度:64 资源ID。 此参数不携带时,不作为筛选条件;携带值为空或携带值为空串时,作为筛选条件。 enterprise_project_id 否 String 最大长度:64 企业项目标识(企业项目ID)。 default项目对应ID:0 未归集(表示该云服务不支持企业项目管理能力)项目对应ID:-1 其余项目对应ID获取方法请参见如何获取企业项目ID。 此参数不携带或携带值为空或携带值为空串或携带值为null时,不作为筛选条件。 include_zero_record 否 Boolean - 返回是否包含应付金额为0的记录。 true:包含 false:不包含 此参数不携带或携带值为空时,不作为筛选条件。 method 否 String 最大长度:64 查询资源消费记录的方式。 oneself:客户自己 sub_customer:企业子客户 all:客户自己和企业子客户 此参数不携带或携带值为空时,默认值为“all”,如果没有企业子客户,取值为all时查询的是客户自己的资源消费记录。 说明: 若需要查询财务独立企业子的账单信息,前提是子账号已经接受了企业主账号的“允许查看子账号消费信息”的申请。申请方法见“变更子账号权限”。 sub_customer_id 否 String 最大长度:64 企业子账号ID。 此参数携带值为空串时,不作为筛选条件。 说明: 如果method取值不为sub_customer,则该参数无效。 如果method取值为sub_customer,则该参数不能为空。 trade_id 否 String 最大长度:64 订单ID或交易ID。 账单类型为1、2、3、4和8时此处为订单ID。 账单类型为其它场景时此处为交易ID,为扣费维度的唯一标识。 例如非月末扣费时为应收ID;月末扣费时为账单ID。 此参数不携带时,不作为筛选条件;携带值为空或携带值为空串时,作为筛选条件。 说明: 按账期类型统计时字段不生效。 bill_date_begin 否 String 最大长度:20 查询的资源消费记录的开始日期,东八区时间,格式为YYYY-MM-DD。 此参数不携带或携带值为空或携带值为空串时,默认值取cycle月份的第一天。 说明: 必须和cycle(即资源的消费账期)在同一个月。 bill_date_begin和bill_date_end两个参数必须同时出现,否则仅按照cycle(即资源的消费账期)进行查询。 按账期类型统计时字段不生效。 bill_date_end 否 String 最大长度:20 查询的资源消费记录的结束日期,东八区时间,格式为YYYY-MM-DD。 此参数不携带或携带值为空或携带值为空串时,默认值取cycle月份的最后一天。 说明: 必须和cycle(即资源的消费账期)在同一个月。 bill_date_begin和bill_date_end两个参数必须同时出现,否则仅按照cycle(即资源的消费账期)进行查询。 按账期类型统计时字段不生效。 statistic_type 否 Integer - 统计类型。默认值为3。 1:按账期 3:按明细 该参数不携带或携带值为空时,取默认值3。
  • 请求消息 请求参数 无。 请求示例 GET https://bss.myhuaweicloud.com/v2/bills/customer-bills/res-fee-records?cycle=2020-09&charge_mode=1&method=sub_customer&sub_customer_id=05b5fef62300d2ad0f98c00befba72c0&trade_id= CS1908201442ZLEPW476&bill_date_begin=2020-09-01&bill_date_end=2020-09-30&statistic_type=1 HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ
  • URI GET /v2/orders/customer-orders/details/{order_id} 参数说明请参见下表。 表1 路径参数 参数 是否必选 取值范围 描述 order_id 是 最大长度:64 订单ID。 查询订单列表时系统会返回订单ID。 表2 查询参数 参数 是否必选 取值范围 描述 offset 否 [0-最大整数] 偏移量,从0开始。默认值为0。 此参数不携带或携带值为空或携带值为null,取默认值0。 说明: offset用于分页处理,如不涉及分页,请使用默认值0。offset表示相对于满足条件的第一个数据的偏移量。如offset = 1,则返回满足条件的第二个数据至最后一个数据。 示例1,满足查询条件的结果共10条数据,limit取值为10,offset取值为1,则返回的数据为2~10,第一条数据不返回。 示例2,查询总数20条,期望每页返回10条数据,则获取第一页数据,入参offset填写0,limit填写10;获取第二页数据,入参offset填写10,limit填写10。 limit 否 [1-100] 每页大小。默认值为10。 此参数不携带或携带值为空或携带值为null,取默认值10。 表3 消息头参数 参数 是否必选 参数类型 取值范围 描述 X-Language 否 String 最大长度:10 语言。 zh_CN:中文 en_US:英文 缺省为zh_CN。
共100000条