华为云用户手册

  • 新闻播报风格文案 我国是世界上首个国内发明专利有效量超三百万件的国家, 我国发明专利有效量已位居世界第一。 截至二零二二年底,高价值发明专利拥有量达到一百三十二点四万件, 占发明专利有效量的比重超过四成。 我国正在从知识产权引进大国向知识产权创造大国转变, 知识产权工作正在从追求数量向提高质量转变。 近日,关于互联网电视收费乱象的话题不断冲上热搜, 互联网电视平台套娃式的充会员看视频的模式让不少网友直呼太反感。 随着版权保护意识的加强,用户已经愿意以付费方式来收看影视内容, 可商家在收费之余却忽视了消费者的观看体验。 视频平台应该更多的向自身挖掘内容,而不是一味的向用户涨价。 无论哪方都需要多方面考量,结合多终端兼容的市场需要, 为人民带来更加丰富的资源,才能走得长远。 网络暴力是当前社会面临的一大问题。 在社交媒体上,人们可以随意发表言论, 但是也需要意识到这些言论所带来的后果。 预防和治理网络暴力是一个需要全社会共同关注和解决的庞大课题, 除了平台方需要倾注努力,还需监管部门、用户、媒体等多方主体的协作支持、共同参与。 在一场网络暴力事件中,用户可能是直接施暴者、直接或间接传播者,也可能是受害者。 用户应注重规范自身“文明上网”的行为习惯, 严守言论自由的义务边界,提高对于网络暴力行为的识别能力, 及时举报相关内容,学习了解有关平台防范网络暴力的功能机制, 做好自我防护,避免网络暴力再次发生。 近日,旅美大熊猫丫丫因恶劣的健康状况,引发了网友的大量关注和担忧。 多方纷纷站出来为丫丫发声,盼望它早日归来。 从网友的评论中和声援中,感受到了华人的温度, 前路依然充满荆棘,但我们绝不放弃,永不退缩。 “熊猫外交”也增强了国家文化的生命力、创新力、凝聚力和传播力。 八月二十四日中午十二时,日本福岛第一核电站启动核污染水排海。 海洋是全人类赖以生存的蓝色家园, 不顾大众反对坚持将核污染水排海这一自私行为,会使海洋受到严峻挑战。 爱护海洋,是当今每个国家义不容辞的责任, 保护海洋就是守护我们共同家园,造福后代。 日本排污未经得大众同意,此行为必将受到严厉谴责, 海洋安全也将受到不可估量的破坏。 心软的神终于又拿起了拯救世人的手术刀, 天才眼科医生陶勇,医术高超的他,一天甚至可以做八十六台手术, 到现在为止,让一点五万患者重获光明。 他却被自己治愈的患者砍伤,无法再拿起手术刀。 可他忍着剧痛,日复一日做手部康复训练, 在每一日的痛苦哀嚎背后,是他想要重回手术台,救助更多患者的决心。 只要有烟火,黑暗终究被驱散, 终于,他花了三年时间,在那条看不清未来的路上,找到了光。 这位心软的神,又来缝缝补补这个世界了! 小男孩,今年七岁, 在前不久落幕的湖南省青少年锦标赛中,他一举拿下五金两银。 他说,梦想是长大后成为奥运冠军。 他的父母均是残障人士,全家生活困苦。 生活的艰辛,训练的困苦,他都没有退缩, 功夫不负有心人,他取得了亮眼的成绩, 他双眼炯炯有神,说长大后要成为奥运冠军! “五一”黄金周迎来旅游热潮, 无论是从游客出行距离,消费活跃度还是客流量来看, 今年的旅游热度均创下近年来的历史新高。 便利快捷的交通出行方式,让民众实现旅游自由, 多样化的旅游选择,满足各类民众的游玩需求, “五一”旅游热潮,无疑成为各地经济发展的有效“助推器”。 中国梦的本质是国家富强,民族振兴,人民幸福。 实现伟大梦想,必须进行伟大斗争、建设伟大工程、推进伟大事业。 青年兴则国家兴,青年强则国家强。 广大青年要勇做时代的弄潮儿, 在实现中国梦的实践中放飞青春梦想,在为人民利益的奋斗中书写人生华章。 三月二日,神舟十五号乘组进行了二次出舱活动, 在轨三个月取得多项阶段性成果。 自二零二一年神舟十二号载人飞行任务以来, 四个航天员乘组累计开展十次出舱活动,突破掌握了一系列关键技术, 目前出舱活动已成为在轨员的例行性工作, 后续将根据任务需要继续常态化开展。 第三十一届世界大学生运动会在成都隆重开幕,市民健康跑迎接大运会。 青春绽放势不可挡,青年力量如日中天。 各国青年健儿汇聚在成都大运会的舞台上, 用汗水浇灌最美好的梦想,用奋斗绘就最亮丽的底色,共赴一场盛大的“青春之约”。 同时也激励着我们树立远大理想,练就自身本领, 在人生的赛道上不懈奋斗,以青春的活力促进国家繁荣与民族复兴。 俗话说得好:读万卷书,不如行万里路。 “课本游”作为一种旅游新模式,不仅能丰富旅游内涵、提高旅游质量; 更能让孩子切身实地的感受到学习与实践的知行合一,提高学习兴趣与效率, 同时也能在他们心里埋下一颗文化传承的种子, 有助于我国优秀传统文化的弘扬与传播。 黑猩猩是与人类一样能够直立行走的动物, 喜欢集群生活,能使用简单工具,是已知仅次于人类的最聪慧的动物。 其行为和社会行为都更近似于人类,在人类学研究上具有重大意义。 从中国音乐家发布的数据来看,国内有超过四千万孩子学习钢琴。 占全球总数的百分之八十,且每年以百分之十的速度增长。 近日,中国探月航天形象太空兔正式对外公布名称, 中文名“兔星星”。 据悉,今年上半年,中国造船三大指标全面增长, 造船完工量,新接订单量,手持订单量,三大指标的国际市场份额均为全球第一。 二零二三年八月十五日,著名学术期刊《科学通报》刊发了最新研究成果, 中国科学家实现了从二氧化碳到糖的精准合成,人工合成糖迈出关键一步。 八月十五日,自然资源部发布《中国生态保护红线蓝皮书》, 这是我国首次以蓝皮书形式发布的生态保护红线成果。 蓝皮书表示,全国划定生态保护红线面积合计约三百一十九万平方公里, 涵盖我国全部三十五个生物多样性保护优先区域,百分之九十以上的典型生态系统类型。 九月四日,贵州茅台和瑞幸联名推出的“酱香拿铁”咖啡正式上线, 交警提示大家:为了安全,喝了含有酒精的饮品禁止开车。 今年第十一号台风“海葵”在今日早晨五点前后登陆福建省东山县沿海地区, 中心附近最大风力有八级(二十米/秒),中心最低气压为九百九十五百帕。 今日,福州全市中小学、幼儿园决定停课一天。 近期台风频发,希望大家一切安好! 父主题: 文案样例(进阶版)
  • 苹果手机操作 苹果手机推荐下载软件“简易录音机(Easy Voice Recorder)”进行录音,如图1所示。 图1 简易录音机 音频录制说明,如表1所示。 表1 音频录制说明 音频录制 说明 采样率 推荐使用48kHz采样率录制音频。 苹果手机设置简易录音机录音参数的操作如下所示: 打开简易录音机软件,切换至设置“Settings”页面。 选择“Format”,进入“Format”页面。 设置如下选项: 文件格式:选择“.wav (PCM)”。 采样率:选择“48 kHz (high quality)”。 返回至录音页面,开始录制。 采样位 推荐使用48bit采样位录制音频。 苹果手机的简易录音机的采集位默认为16bit,无需修改。 声道 推荐使用单声道录制音频。 苹果手机的简易录音机默认为单声道录制,无需修改。 音频格式 推荐使用无损音质格式保存音频,如WAV格式。不能使用压缩格式保存音频,如MP3格式。 音频命名 所有语料录制生成一个长音频WAV文件,命名示例:Voice.wav。 音频导出 操作如下所示: 打开简易录音机软件,单击底部的“播放”菜单,进入“播放”页面。 单击界面右上方的“编辑”,进入音频文件编辑页面。 选中所有的音频文件,单击“分享”,可选择隔空投送或其他第三方应用导出音频文件至PC中。 一个长音频文件无需压缩,可直接上传至MetaStudio控制台,进行声音训练。
  • 直播带货风格文案 哈喽哈喽,宝宝们晚上好呀,欢迎来到我们的直播间。 今天咱们刚刚开播,给大家带来了超多福利,是你想不到的优惠! 在直播间的宝宝可以扣个一,让我看到你们。 当前在直播间的宝宝,我们先来抽五个人免费送一波福利! 今晚的美食专场有饼干,有薯片…还有我也非常喜欢吃的麻辣香锅。 不过数量都比较少,真的要拼手速宝宝们! 今天直播间会有超级秒杀价,比双十一还要便宜哦! 欢迎新进直播间的宝宝们,还没关注主播的可以先点一点左上方的关注。 右下角的点赞也可以一起点起来!今天我们直播间会有不定时的点赞抽奖活动哦! 这款饼干包装看起来就非常有食欲对不对? 这款饼干真的非常适合喜欢吃零食,但又想控制热量的宝宝。 这个饼干三包加起来的热量,才顶上平常一包饼干的热量! 非油炸、无添加剂的饼干,根本不用担心吃多了上火、长痘这些问题。 所有宝宝听好了,今天在我们直播间,四十九块九得十二包! 折算下来四块多一包对不对,相当于半价啊宝子们! 拍好的宝宝们记得回来说一下,给大家备注优先发货。 没有付款的宝宝抓紧时间去下单啦!我们的福利价都是直播的时候才能享受的! 喜欢的宝宝可以直接去拍,下单就送运费险,大家放心大胆的去拍! 宝宝们,我们的直播还有十分钟就要结束了,大家还有什么疑问都可以打在公屏上! 我们准备下播咯,跟大家预告一下明天我们的开播时间是晚上八点,记得来看哦!拜拜 父主题: 文案样例(基础版)
  • MetaStudio权限 默认情况下,新建的 IAM 用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 MetaStudio部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京四)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问MetaStudio时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。 如表1所示,包括了MetaStudio的所有系统策略。 表1 MetaStudio系统权限 策略名称 描述 策略类别 策略内容 MetaStudio FullAccess MetaStudio管理员权限,拥有该权限的用户可以拥有MetaStudio支持的全部权限。 系统策略 MetaStudio FullAccess策略内容 MetaStudio ReadOnlyAccess MetaStudio只读权限,拥有该权限的用户仅能查看MetaStudio数据。 系统策略 MetaStudio ReadOnlyAccess策略内容
  • MetaStudio FullAccess策略内容 { "Version": "1.1", "Statement": [ { "Action": [ "metastudio:*:*" ], "Effect": "Allow" } ] }
  • MetaStudio ReadOnlyAccess策略内容 { "Version": "1.1", "Statement": [ { "Action": [ "metastudio:*:show*" ], "Effect": "Allow" } ] }
  • 错误码说明 表1 错误码 状态码 错误码 错误码信息 错误码描述 200 CBC.0000 Success. 成功。 403 CBC.0156 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 Operation not supported. There is an order in progress for this resource. 资源有处理中的订单,不能进行当前操作。 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.5005 The customer is being authenticated by HUAWEI CLOUD. 该客户正在华为云系统认证。 200 CBC.50000034 Coupons cannot be issued to the enterprise member account. 无法给财务托管企业子发券。 200 CBC.50000045 No frequent operations are allowed for the same coupon quota. 不能对同一个代金券额度进行频繁操作。上一次的代金券额度划拨正在进行中,不允许并行划拨,待结束后再进行下一次操作。 200 CBC.5006 The customer type (individual/enterprise) is different from the customer type stored in HUAWEI CLOUD. 客户类型(个人/企业)和华为云系统存储的客户类型不同。 200 CBC.5007 The subscribed products must belong to the same region. 订购产品必须属于同一个区域。 200 CBC.5008 The quota value exceeds the limit that can be set by the partner. quota值超出合作伙伴可设置的限额。 200 CBC.5009 The partner does not have the permission to modify or query the quota. 合作伙伴无修改和查询quota的权限。 200 CBC.5020 Partial failure. 部分失败。 200 CBC.5021 Coupons cannot be issued or recycled to customers associated to the partner in Referral mode. 顾问销售模式下不能给客户调账和回收。 200 CBC.5023 The account type does not match the association type. 账户类型与合作伙伴关联类型不匹配。 200 CBC.5024 This API cannot be invoked because the association type of the customer is incorrect. 客户的关联类型不允许调用该接口。 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.18000053 Insufficient permissions. Contact your enterprise master. 权限不足,请联系您的企业主。 400 CBC.30000010 Invalid order (maybe the order does not exist), unable to operate. 无效订单(可能是订单不存在),不能进行操作。 400 CBC.30000067 Unsubscription not supported. This resource has been deleted or the subscription to this resource has not been synchronized to CBC. 资源已被删除或者资源未被纳管,不支持退订。 400 CBC.30000052 The resource or account has been already frozen. 已冻结,不能执行此操作。 400 CBC.30000053 Unsubscription not supported. The billing mode of the resource is Savings Plans. 资源计费模式是节省计划,不支持退订。 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.5001 You has not been a partner. 非合作伙伴。 400 CBC.5002 The customer does not exist. 合作伙伴的客户不存在。 400 CBC.5003 Insufficient balance. 余额不足。 400 CBC.5004 You do not have the operation permission to the customer. 无对该客户的操作权限。 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.50000054 The product does not exist. 产品不存在。 400 CBC.50000055 The cloud service type does not exist. 云服务类型不存在。 400 CBC.50010059 Customer association not supported for distributors. 一级经销商不允许关联子客户。 400 CBC.50010065 Customer association not allowed. This partner is a Huawei Cloud reseller, and its associated distributor has already been disenrolled. 该伙伴是云经销商,其关联的总经销商已经摘牌退出,无法拓客创建关联关系。 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.70600026 Huawei Cloud cannot review the information you submitted for real-name authentication. Contact your account manager. 抱歉,华为云暂无法审核您提交的实名认证信息,请联系您的客户经理协助。 400 CBC.7151 Expired verification code. 验证码失效。 400 CBC.7152 Incorrect verification code. 验证码错误。 400 CBC.7188 The customer has passed real-name authentication or is being reviewed. 该客户已经实名认证或者实名认证在审核中。 400 CBC.7191 The number of real-name authentication times of the customer exceeds the upper limit. 客户实名认证次数超过最大配置值。 400 CBC.7202 Real-name authentication failed. 实名认证校验失败。 400 CBC.7219 Real-name authentication information does not match the facial image. 实名认证信息与人脸不匹配。 400 CBC.7253 The picture of the ID card is invalid or blurred. 无效的证件照或者证件照模糊。 400 CBC.7255 The ID information or mobile number is incorrect. 持卡人身份信息或手机号输入不正确。 400 CBC.7256 The legal entity information is incorrect. 法人信息不正确。 400 CBC.7257 The enterprise information is incorrect. 企业信息不正确。 400 CBC.7258 The bank card status is incorrect. The bank card may be frozen or expired. 银行卡状态不正确(可能是冻结或过期的银行卡)。 400 CBC.7259 If you use a card issued by the Bank of Communications, Beijing Bank, Bank of Shanghai, Guangdong Development Bank, Shanghai Pudong Development Bank, or Ping An Bank to perform real-name authentication, you must subscribe to UnionPay online payment for the card first. 银行卡未开通认证支付(若您使用交通银行、北京银行、上海银行、广发银行、浦发银行或平安银行的银行卡进行个人实名认证,需要先开通此银行卡的银联在线支付)。 400 CBC.7261 The bank card is not supported. Try another bank card. 不支持该银行卡,请尝试其他银行卡。 400 CBC.7265 You are a partner and cannot be authenticated as an individual using your real name. 您是合作伙伴,不允许实名实名认证为个人。 400 CBC.7267 The member account is being associated with a master account and cannot perform real-name authentication again. 企业子账号正在被邀请关联,不允许重新实名认证。 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.99000000 You do not have the operation permission to the customer. 无对该客户的操作权限。 400 CBC.99000004 An exception occurred when the customer authorized rights to the partner. 客户向伙伴授权时发生异常。 400 CBC.99000006 The record ID of the record to be updated does not exist. 要查询/更新的记录ID不存在。 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.99000035 This customer has not been associated with you. 非合作伙伴子客户。 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.99000045 Coupons sent to referral customers cannot be reclaimed. 不能回收发给顾问销售子客户的券。 400 CBC.99000046 Insufficient budget. 预算不足。 400 CBC.99000047 Balances account not exist 账户不存在。 400 CBC.99000048 The coupon has expired or has been recycled. 该券已经过期或者已经被回收。 400 CBC.99000049 BindType can not be resale. 转售子客户无账户余额。 400 CBC.99000051 Customer creation failed because this mobile number or email address has been preregistered by Huawei. 该手机号/邮箱已被华为报备,无法创建客户。 400 CBC.99000082 You have exceeded the maximum verification code requests allowed. 客户发送验证码次数超过限制。 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.99000099 The certificate attachment the customer submitted for real-name authentication exceeded the maximum size allowed. 客户实名认证时证件附件的文件大小超过最大配置值。 400 CBC.99000100 Incorrect format of the certificate attachment the customer submitted for real-name authentication. 客户实名认证时证件附件的文件格式不正确。 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 Operation not supported. There is an order in progress for this resource. 资源有处理中的订单,不能进行当前操作。 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 Operation not allowed. Your account has been frozen. 已冻结,不能执行此操作。 400 CBC.99004001 The template does not exist. 模板不存在。 400 CBC.99004002 Failed to generate the verification code. 生成验证码失败。 400 CBC.99004003 The verification code is successfully generated but fails to be sent. 验证码生成成功但发送失败。 400 CBC.99004004 Empty email address./Invalid format. 邮箱为空/格式不合法。 400 CBC.99004005 Empty mobile number./Invalid format. 手机号为空/格式不合法。 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.99004015 The number of verification code sending times has reached the upper limit (15 times per hour, 60 times per day). 发送验证码次数已达到上限(15次/小时,60次/天)。 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.99005030 The partner did not complete real-name authentication or bucket authentication. 伙伴未开通实名认证功能或者桶鉴权失败。 400 CBC.99005035 This API cannot be used by a sandbox account. 测试伙伴账号不能使用该接口。 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.99007188 The customer has passed real-name authentication or is being reviewed. 该客户已经实名认证或者实名认证在审核中。 400 CBC.99007189 The number of users who used the certificate ID for real-name authentication has reached the maximum limit. 使用该证件号进行实名认证的客户数已经超过系统规定。 400 CBC.99007191 The number of real-name authentication times of the customer exceeds the upper limit. 客户实名认证次数超过最大配置值。 400 CBC.99007193 The certificate ID is from an invalid certificate and cannot be used for real-name authentication. 该证件号属于违规证件号,不允许进行实名认证。 400 CBC.99007197 Your IP has been throttled. 您的IP已经被限流。 400 CBC.99007202 Real-name authentication valid fail. 实名认证校验失败。 400 CBC.99007219 Real-name authentication information does not match face. 实名认证信息与人脸不匹配。 400 CBC.99007253 The picture of the ID card is invalid or blurred. 无效的证件照或者证件照模糊。 400 CBC.99007255 Cardholder's identity information or mobile phone number incorrect. 持卡人身份信息或手机号输入不正确。 400 CBC.99007256 The legal entity information is incorrect. 法人信息不正确。 400 CBC.99007257 The enterprise information is incorrect. 企业信息不正确。 400 CBC.99007258 Bank card status is incorrect. 银行卡状态不正确(可能是冻结或过期的银行卡)。 400 CBC.99007259 Bank card certified payment is unopened. 银行卡未开通认证支付(若您使用交通银行 、北京银行、上海银行、广发银行、浦发银行或平安银行的银行卡进行个人实名认证,需要先开通此银行卡的银联在线支付)。 400 CBC.99007260 Failed to invoke the UnionPay interface with the card issuing bank. Try again later or use another bank card. 银联与发卡行之间调用失败,请稍后重试或使用其它银行卡。 400 CBC.99007261 This bank is not supported. Please try other bank cards. 不支持该银行卡,请尝试其他银行卡。 400 CBC.99007262 A network exception of the bank system occurs. 银行系统异常,网络异常。 400 CBC.99007265 Other errors. 其他错误。 400 CBC.99007267 The member account is being associated with a master account and cannot perform real-name authentication again. 企业子账号正在被邀请关联,不允许重新实名认证。 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.99008056 The maximum number of transactions allowed today has been reached. 今日创建交易已达上限。 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. 不允许执行当前请求。 404 CBC.0160 This user is not allowed to perform this request. 请求的资源没有找到。 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.4001 The template does not exist. 模板不存在。 500 CBC.4002 Failed to generate the verification code. 生成验证码失败。 500 CBC.4003 The verification code is successfully generated but fails to be sent. 验证码生成成功但发送失败。 500 CBC.4005 Empty mobile number./Invalid format. 手机号为空/格式不合法。 500 CBC.4006 Failed to verify the mobile number. 手机号校验失败。 500 CBC.4008 Invalid verification code. 有验证码,但是已经失效。 500 CBC.4009 The verification code is available, but the number of verification failures is greater than 3. 有验证码,但是校验失败次数已经大于3。 500 CBC.4015 The number of verification code sending times has reached the upper limit. 发送验证码次数已达到上限。 500 CBC.5012 The account name already exists. 客户登录名已经存在。 500 CBC.5014 The mobile number already exists. 客户手机号已经存在。 500 CBC.5015 Invalid account name. 客户登录名格式不合法。 400 CBC.5017 Invalid mobile number. 客户手机号格式不合法。 500 CBC.5018 Duplicate xAccountId. xAccountId重复。 500 CBC.5019 The number of customers exceeds the license limit. 客户数量超过license限制。 500 CBC.5025 An exception occurred when the customer authorized rights to the partner. 客户向伙伴授权时发生异常。 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.7189 The number of users who used the certificate ID for real-name authentication has reached the maximum limit. 使用该证件号进行实名认证的客户数已经超过系统规定。 500 CBC.7193 The certificate ID is from an invalid certificate and cannot be used for real-name authentication. 该证件号属于违规证件号,不允许进行实名认证。 500 CBC.7209 The number of registered mobile numbers exceeds the upper limit. 手机号注册数量超过上限。 500 CBC.7228 Invalid password. 客户密码格式不合法。 500 CBC.7260 Failed to invoke the UnionPay interface with the card issuing bank. Try again later or use another bank card. 银联与发卡行之间调用失败,请稍后重试或使用其它银行卡。 500 CBC.7262 A network exception of the bank system occurs. 银行系统异常,网络异常。 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.99000050 Query for the result of associating partner and its sub-customer timed out. Use the API for querying customers to check the association result. 伙伴和子客户关联结果查询超时,请使用查询客户列表确认最终关联结果。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 错误描述 400 CBC.99000027 验证码过期。 400 CBC.99000035 非合作伙伴子客户。 400 CBC.99000099 客户实名认证时证件附件的文件大小超过最大配置值。 400 CBC.99000100 客户实名认证时证件附件的文件格式不正确。 400 CBC.99005030 伙伴未开通实名认证功能或者桶鉴权失败。 400 CBC.99007188 该客户已经实名认证或者实名认证在审核中。 400 CBC.99007189 使用该证件号进行实名认证的客户数已经超过系统规定。 400 CBC.99007191 客户实名认证次数超过最大配置值。 400 CBC.99007193 该证件号属于违规证件号,不允许进行实名认证。 400 CBC.99007202 实名认证校验失败。 400 CBC.99007219 实名认证信息与人脸不匹配。 400 CBC.99007255 持卡人身份信息或手机号输入不正确。 400 CBC.99007258 银行卡状态不正确(可能是冻结或过期的银行卡)。 400 CBC.99007261 不支持该银行卡,请尝试其他银行卡。 400 CBC.99007260 银联与发卡行之间调用失败,请稍后重试或使用其它银行卡。 400 CBC.99007262 银行系统异常,网络异常。 400 CBC.0100 参数错误。 400 CBC.70600026 抱歉,华为云暂无法审核您提交的实名认证信息,请联系您的客户经理协助。 403 CBC.0151 访问拒绝。 500 CBC.0999 其他错误。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 错误描述 400 CBC.0100 参数错误。 400 CBC.99000035 非合作伙伴子客户。 400 CBC.99000099 客户实名认证时证件附件的文件大小超过最大配置值。 400 CBC.99000100 客户实名认证时证件附件的文件格式不正确。 400 CBC.99007004 发起的业务操作存在不满足的业务检查项。 400 CBC.99007188 该客户已经实名认证或者实名认证在审核中。 400 CBC.99007191 客户实名认证次数超过最大配置值。 400 CBC.70600026 抱歉,华为云暂无法审核您提交的实名认证信息,请联系您的客户经理协助。 403 CBC.0151 访问拒绝。 500 CBC.0999 未知错误。
  • 请求消息 请求参数 无。 请求示例 GET https://bss.myhuaweicloud.com/v2/bills/partner-bills/subcustomer-bills/res-fee-records?customer_id=06a29ceaae80d2400fc0c01027684d40&cycle=2020-04&cloud_service_type=hws.service.type.ec2®ion=cn-north-1&charge_mode=1&bill_type=1&offset=0&limit=10&resource_id=f4a7ed17-dcbd-4554-b26b-248ea46c056a&include_zero_record=true&indirect_partner_id=c9e731c4663646988ef4cdb3122837b6 HTTP/1.1 Content-Type: application/json X-Auth-Token:MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ
  • URI GET /v2/bills/partner-bills/subcustomer-bills/res-fee-records 参数说明请参见表1-1。 表1 查询参数 参数 是否必选 参数类型 取值范围 描述 customer_id 是 String 最大长度:64 客户账号ID。您可以调用查询客户列表接口获取customer_id。 cycle 是 String 最大长度:10 查询的客户消费记录所在账期,格式:YYYY-MM。 charge_mode 是 String 最大长度:4 计费模式。 1 : 包年/包月 3:按需 10: 预留实例 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:调账-补偿 14:消费-服务支持计划月末扣费 16:调账-扣费 18:消费-按月付费 20:退款-变更 此参数不携带或携带值为空时,不作为筛选条件;携带值为空串时,作为筛选条件。 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。 此参数不携带时,不作为筛选条件;携带值为空串或携带值为空时,作为筛选条件。 include_zero_record 否 Boolean - 返回是否包含应付金额为0的记录。 true:包含 false:不包含 此参数不携带或携带值为空时,不作为筛选条件;携带值为空串时,作为筛选条件。 indirect_partner_id 否 String 最大长度:64 云经销商ID。获取方法请参见查询云经销商列表。 如果华为云总经销商需要查询客户在云经销商关联期间的消费,需要携带该字段;除此之外,此参数不做处理。否则只能查询该客户在与自己关联期间的消费。 bill_date_begin 否 String 最大长度:10 查询的资源消费记录的开始日期,格式为YYYY-MM-DD。 此参数不携带或携带值为空或携带值为空串时,默认值取cycle月份的第一天。 说明: 必须和cycle(即资源的消费账期)在同一个月。 bill_date_end 否 String 最大长度:10 查询的资源消费记录的结束日期,格式为YYYY-MM-DD。 此参数不携带或携带值为空或携带值为空串时,默认值取cycle月份的最后一天。 说明: 必须和cycle(即资源的消费账期)在同一个月。 bill_date_begin和bill_date_end两个参数必须同时出现,否则仅按照cycle(即资源的消费账期)进行查询。
  • 合作伙伴运营能力API简介(代售交易模式) 华为云面向合作伙伴开放代售交易模式运营能力,用于支撑伙伴销售平台管理产品、管理客户、管理云经销商、管理交易、管理账单、管理配置信息、管理工单等场景。 表1 API列表和描述 场景 子场景 API名称 API说明 管理产品 查询产品信息 查询云服务类型列表 伙伴在伙伴销售平台查询云服务类型的列表。 查询资源类型列表 伙伴在伙伴销售平台查询资源类型的列表。 根据云服务类型查询资源列表 伙伴在伙伴销售平台根据云服务类型查询关联的资源类型编码和名称,用于查询按需产品的价格或包年/包月产品的价格。 查询使用量类型列表 伙伴在伙伴销售平台查询资源的使用量类型列表。 查询度量单位列表 伙伴在伙伴销售平台上查询资源使用量,包年包月资源的时长及金额的度量单位及名称,度量单位类型等。 查询度量单位进制 伙伴在伙伴销售平台上查询度量单位的进制转换信息,用于不同度量单位之间的转换。 查询产品的折扣和激励策略 伙伴在伙伴销售平台上查询产品的折扣和激励策略。 查询商品价格 查询按需产品价格 伙伴在销售平台按照条件查询按需产品的价格。 查询包年/包月产品价格 伙伴在销售平台按照条件查询包年/包月产品开通时候的价格。 查询包年/包月资源的续订金额 客户在伙伴销售平台按照条件查询包年/包月资源续订时候的续订金额。 管理客户 注册客户 校验客户注册信息 客户注册时可检查客户的登录名称、手机号或者邮箱是否可以用于注册。 发送验证码 客户注册时,如果填写了手机号,可以向对应的手机发送注册验证码,校验信息的正确性。使用个人银行卡方式进行实名认证时,通过该接口向指定的手机发送验证码。 创建客户 在伙伴销售平台创建客户时同步创建华为云账号,并将客户在伙伴销售平台上的账号与华为云账号进行映射。同时,创建的华为云账号与伙伴账号关联绑定。 实名认证 申请个人实名认证 个人客户可以进行个人实名认证申请。 申请企业实名认证 企业客户可以进行企业实名认证申请。 申请实名认证变更 客户可以进行实名认证变更申请。 查询实名认证审核结果 如果实名认证申请或实名认证变更申请的响应中,显示需要人工审核,使用该接口查询审核结果。 管理客户 查询客户列表 伙伴可以查询合作伙伴的客户信息列表。 查询客户新客标签 伙伴可以查询合作伙伴的客户新客标签。 管理云经销商 查询云经销商 查询云经销商列表 华为云总经销商(一级经销商)可以查询云经销商(二级经销商)列表。 管理云经销商账户 查询云经销商账户余额 华为云总经销商(一级经销商)可以查询关联的云经销商(二级经销商)的账户余额。 向云经销商账户拨款 华为云总经销商(一级经销商)可以向云经销商(二级经销商)账户拨款。 回收云经销商账户拨款 华为云总经销商(一级经销商)可以回收云经销商(二级经销商)的账户余额。 查询调账记录 伙伴在伙伴销售平台查询向客户及关联的云经销商(二级经销商)拨款或回收的调账记录。 管理云经销商优惠券 查询已发放的代金券额度 华为云总经销商(一级经销商)可以查看发放给云经销商(二级经销商)的代金券额度列表。 向云经销商发放代金券额度 华为云总经销商(一级经销商)可以向云经销商(二级经销商)发放代金券额度。 回收云经销商的代金券额度 华为云总经销商(一级经销商)可以回收已发放给云经销商(二级经销商)的代金券额度。 查询代金券额度的发放回收记录 华为云总经销商(一级经销商)可以查看给云经销商(二级经销商)发放或回收代金券额度的操作记录。 管理交易 管理客户账户 查询伙伴账户余额 合作伙伴可以查询伙伴的账户余额。 查询客户账户余额 合作伙伴可以查询关联的代售类子客户的账户余额。 向客户账户拨款 合作伙伴可以为代售类客户账户拨款。 回收客户账户余额 当客户不再使用 华为云产品 时,合作伙伴可以回收代售类客户账户余额。 查询调账记录 伙伴在伙伴销售平台查询向客户及关联的云经销商(二级经销商)拨款或回收的调账记录。 查询收支明细 伙伴在伙伴销售平台上查询自身的收支明细情况。 管理优惠券 查询优惠券列表 伙伴可以查询自身的优惠券信息。 查询优惠券额度 伙伴可以查询自身的优惠券信息。 发放优惠券 合作伙伴可以在拥有的代金券额度范围内为客户下发优惠券。 回收优惠券 对于合作伙伴已经下发给客户的优惠券,如遇发错或其他特殊情况,合作伙伴有回收的权利。优惠券回收后,客户将不再拥有该优惠券。 查询已发放的优惠券 合作伙伴可以查询已发放的优惠券列表。 查询优惠券的发放回收记录 合作伙伴可查看给客户发放和回收优惠券的操作记录。 管理包年/包月订单 查询订单列表 客户购买包年/包月资源后,可以查看待审核、处理中、已取消、已完成和待支付等状态的订单。 查询订单详情 客户可以在伙伴销售平台查看订单详情。 查询订单可用优惠券 客户在伙伴销售平台支付待支付订单时,查询可使用的优惠券列表。 支付包年/包月产品订单 客户可以对待支付状态的包年/包月产品订单进行支付。 取消待支付订单 客户可以对待支付的订单进行取消操作。 查询退款订单的金额详情 客户在伙伴销售平台查询某次退订订单或者降配订单的退款金额来自哪些资源和对应订单。 管理包年/包月资源 查询客户包年/包月资源列表 客户在伙伴销售平台查询某个或所有的包年/包月资源。 续订包年/包月资源 客户在伙伴销售平台完成包年/包月资源的续订。 退订包年/包月资源 客户购买包年/包月资源后,支持客户退订包年/包月实例。退订资源实例包括资源续费部分和当前正在使用的部分,退订后资源将无法使用。 设置包年/包月资源自动续费 为防止资源到期被删除,客户可为长期使用的包年/包月资源开通自动续费。 取消包年/包月资源自动续费 客户设置自动续费后,还可以执行取消自动续费的操作。关闭自动续费后,资源到期将不会被自动续费。 设置或取消包年/包月资源到期转按需 客户可以设置包年/包月资源到期后转为按需资源计费。包年/包月计费模式到期后,按需的计费模式即生效。 管理资源包 查询资源包列表 客户在伙伴销售平台查询客户的资源包列表。 查询资源包使用量 客户在伙伴销售平台根据资源项维度查询客户的资源包使用量。 查询资源包使用明细 客户在伙伴销售平台查询客户的资源包使用明细。 管理按需资源 查询客户按需资源列表 合作伙伴可以查询关联的代售类客户已开通的按需资源。 管理云服务资源 相关云服务资源 从伙伴销售平台跳转到华为控制台 客户从伙伴销售平台通过链接跳转到华为控制台完成相关云服务资源的管理。 管理账单 - 查询伙伴子客户消费记录 伙伴在伙伴销售平台可实时查询子客户的消费记录,了解客户的资源消耗情况。 查询伙伴消费子客户列表 伙伴在伙伴销售平台可实时查询子客户的消费记录,了解客户的资源消耗情况。 查询客户月度消费账单 合作伙伴可查询客户的消费汇总账单,消费按月汇总。 管理配置信息 查询国家省市信息 查询省份信息 伙伴在伙伴销售平台上查询省份信息。 查询城市信息 伙伴在伙伴销售平台上查询城市信息。 查询区县信息 伙伴在伙伴销售平台上查询区县信息。 管理工单 管理工单 工单管理API参考 合作伙伴或伙伴的客户可以在合作伙伴销售平台上提交华为云工单,华为云售后服务团队收到工单后会协助客户处理使用华为云过程中遇到的问题。
  • 状态码 状态码4xx:由于明显的客户端错误(例如,格式错误的请求语法、参数错误等),华为云会返回4xx错误码,请及时检查请求消息的正确性,重新发起请求。 状态码5xx:由于华为云系统原因,导致无法完成明显有效请求的处理,可及时联系华为云客服处理。 HTTP状态码 错误码 错误描述 400 CBC.0100 参数错误。 400 CBC.99000035 非合作伙伴子客户。 400 CBC.99000099 客户实名认证时证件附件的文件大小超过最大配置值。 400 CBC.99000100 客户实名认证时证件附件的文件格式不正确。 400 CBC.99005030 伙伴未开通实名认证功能或者桶鉴权失败。 开启实名认证附件上传配置请参见这里。 400 CBC.99007004 发起的业务操作存在不满足的业务检查项。 400 CBC.99007188 该客户已经实名认证或者实名认证在审核中。 400 CBC.99007191 客户实名认证次数超过最大配置值。 400 CBC.70600026 抱歉,华为云暂无法审核您提交的实名认证信息,请联系您的客户经理协助。 403 CBC.0151 访问拒绝。 500 CBC.0999 未知错误。
  • 流控失败常见问题及处理 接口报错样例: {"status_code":429,"request_id":"7e6c1***********c610","error_code":"APIGW.0308","error_message":"The throttling threshold has been reached: policy user over ratelimit,limit:10,time:1 second","encoded_authorization_message":""} 处理方式: 华为云为客户运营能力API均提供默认的流量配额,用户可根据自己实际业务场景对额度进行升级。用户可以监视429状态码并构建重试机制。重试机制应遵循指数回退计划,以在必要时减少请求量。用户还可以在退避时间表中建立一些随机性,以避免严重的羊群效应。
  • 注意事项 企业的华为云账号需要满足以下条件,才能申请加入云经销商计划: 该账号已经完成企业实名认证。 该账号没有被冻结(包含账号关闭冻结、欠费冻结、公安冻结、违规冻结等)。 该账号没有关联一级经销商。 该账号不是合作伙伴或者正在申请成为合作伙伴。 该账号不是企业主账号或者企业子账号。 该账号下没有未关闭的资源。 该账号无欠费,充值账户无余额。 该账号下没有可开票金额。 该账号没有开通后付费。 该账号没有与华为云签署指定合同(线下直签合同、电销授权合同折扣、直签特价商务)等。 该账号不是一级经销商的顾问销售或代售模式客户。 若账号下有未使用完的代金券,折扣券或者储值卡,成为云经销商后将失效不可使用。 如果客户希望继续使用这些代金券,折扣券或储值卡,建议客户选择其他账号或者重新注册新账号,再申请加入云经销商。 企业客户申请加入云经销商计划后无法再申请加入其他任何伙伴计划。
  • Ioredis客户端连接Redis 客户端服务器为Ubuntu(debian系列) 查看并获取待连接Redis实例的IP地址/ 域名 和端口。 具体步骤请参见查看和修改D CS 实例基本信息。 登录弹性云服务器。 安装Node.js。 apt install nodejs-legacy 如果以上命令安装不了,备选方式如下: wget https://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz --no-check-certificate tar -xvf node-v4.28.5.tar.gz cd node-v4.28.5 ./configure make make install 安装完成后,可执行node --version查看Node.js的版本号,确认Node.js已安装成功。 安装js包管理工具npm。 apt install npm 安装NodeJs redis客户端ioredis。 npm install ioredis 编辑连接Redis实例的示例脚本。 编辑连接示例脚本ioredisdemo.js。示例脚本中增加以下内容,包括连接以及数据读取。 var Redis = require('ioredis'); var redis = new Redis({ port: 6379, // Redis port host: '192.168.0.196', // Redis host family: 4, // 4 (IPv4) or 6 (IPv6) password: '******', db: 0 }); redis.set('foo', 'bar'); redis.get('foo', function (err, result) { console.log(result); }); // Or using a promise if the last argument isn't a function redis.get('foo').then(function (result) { console.log(result); }); // Arguments to commands are flattened, so the following are the same: redis.sadd('set', 1, 3, 5, 7); redis.sadd('set', [1, 3, 5, 7]); // All arguments are passed directly to the redis server: redis.set('key', 100, 'EX', 10); 其中,host为Redis实例的IP地址/域名,port为Redis实例的端口。IP地址/域名和端口获取见1,请按实际情况修改后执行。******为创建Redis实例时自定义的密码,请按实际情况修改后执行。 运行示例脚本,连接Redis实例。 node ioredisdemo.js 客户端服务器为centos(redhat系列) 查看并获取待连接Redis实例的IP地址/域名和端口。 具体步骤请参见查看和修改DCS实例基本信息。 登录弹性云服务器。 安装Node.js。 yum install nodejs 如果以上命令安装不了,备选方式如下: wget https://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz --no-check-certificate tar -xvf node-v0.12.4.tar.gz cd node-v0.12.4 ./configure make make install 安装完成后,可执行node -v查看Node.js的版本号,确认Node.js已安装成功。 安装js包管理工具npm。 yum install npm 安装Node.js redis客户端ioredis。 npm install ioredis 编辑连接Redis实例的示例脚本。 编辑连接示例脚本ioredisdemo.js。示例脚本中增加以下内容,包括连接以及数据读取。 var Redis = require('ioredis'); var redis = new Redis({ port: 6379, // Redis port host: '192.168.0.196', // Redis host family: 4, // 4 (IPv4) or 6 (IPv6) password: '******', db: 0 }); redis.set('foo', 'bar'); redis.get('foo', function (err, result) { console.log(result); }); // Or using a promise if the last argument isn't a function redis.get('foo').then(function (result) { console.log(result); }); // Arguments to commands are flattened, so the following are the same: redis.sadd('set', 1, 3, 5, 7); redis.sadd('set', [1, 3, 5, 7]); // All arguments are passed directly to the redis server: redis.set('key', 100, 'EX', 10); 其中,host为Redis实例的IP地址/域名,port为Redis实例的端口。IP地址/域名和端口获取见1,请按实际情况修改后执行。******为创建Redis实例时自定义的密码,请按实际情况修改后执行。 运行示例脚本,连接Redis实例。 node ioredisdemo.js
  • SSL连接配置(可选配置) 当实例开启了SSL,通过SSL连接实例时,请使用以下内容替换基于Bean方式配置中的LettuceClientConfiguration构造方法clientConfiguration()。Redis实例支持SSL的情况请参考配置Redis SSL 数据加密 传输。 单机、主备、读写分离、Proxy集群实例配置 @Bean public LettuceClientConfiguration clientConfiguration() { SocketOptions socketOptions = SocketOptions.builder().connectTimeout(Duration.ofMillis(redisConnectTimeout)).build(); SslOptions sslOptions = SslOptions.builder() .trustManager(new File(certificationPath)) .build(); ClientOptions clientOptions = ClientOptions.builder() .sslOptions(sslOptions) .autoReconnect(true) .pingBeforeActivateConnection(true) .cancelCommandsOnReconnectFailure(false) .disconnectedBehavior(ClientOptions.DisconnectedBehavior.ACCEPT_COMMANDS) .socketOptions(socketOptions) .build(); LettuceClientConfiguration clientConfiguration = LettuceClientConfiguration.builder() .commandTimeout(Duration.ofMillis(redisReadTimeout)) .readFrom(ReadFrom.MASTER) .clientOptions(clientOptions) .useSsl() .build(); return clientConfiguration; } Cluster集群实例配置 @Bean public LettuceClientConfiguration clientConfiguration() { SocketOptions socketOptions = SocketOptions.builder().connectTimeout(Duration.ofMillis(redisConnectTimeout)).build(); SslOptions sslOptions = SslOptions.builder() .trustManager(new File(certificationPath)) .build(); ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder() .enableAllAdaptiveRefreshTriggers() .enablePeriodicRefresh(Duration.ofMillis(redisClusterTopologyRefreshPeriodMillis)) .build(); ClusterClientOptions clientOptions = ClusterClientOptions.builder() .sslOptions(sslOptions) .autoReconnect(true) .pingBeforeActivateConnection(true) .cancelCommandsOnReconnectFailure(false) .disconnectedBehavior(ClientOptions.DisconnectedBehavior.ACCEPT_COMMANDS) .socketOptions(socketOptions) .topologyRefreshOptions(topologyRefreshOptions) .build(); LettuceClientConfiguration clientConfiguration = LettuceClientConfiguration.builder() .commandTimeout(Duration.ofMillis(redisReadTimeout)) .readFrom(ReadFrom.MASTER) .clientOptions(clientOptions) .useSsl() .build(); return clientConfiguration; }
  • DCS实例配置建议 连接池化 因lettuce底层采用基于netty的NIO模式,和redis server进行通信,不同于jedis的BIO模式。底层采用长连接 + 队列的组合模式,借助TCP顺序发、顺序收的特性,来实现同时处理多请求发送和多响应接收,单条连接可支撑的QPS在3K~5K不等,线上系统建议不要超过3K。lettuce本身不支持池化,且在springboot中默认不开启池化,如需开启池化,需通过手动引入commons-pool2组件,并关闭LettuceConnectionFactory.shareNativeConnection(共享连接)来实现池化。 因每条lettuce连接默认需要配置两个线程池-I/O thread pools、computation thread pool,用于支撑IO事件读取和异步event处理,如配置成连接池形式使用,每个连接都将会创建两个线程池,对内存资源的占用偏高。鉴于lettuce的底层模型实现,及单连接突出的处理能力,不建议通过池化的方式使用lettuce。 拓扑刷新 在连接cluster类型实例中,lettuce会在初始化时,向配置的节点列表随机发送cluster nodes来获取集群slot的分布信息。如后续cluster扩/缩容、主备切换等,会导致集群拓扑结构发生变化,lettuce默认是不感知的,需手动开启主动感知拓扑结构变化,如下: 基于application.properties配置 # 开启自适应拓扑刷新 spring.redis.lettuce.cluster.refresh.adaptive=true # 开启每10s定时刷新拓扑结构 spring.redis.lettuce.cluster.refresh.period=10S 基于API配置 ClusterTopologyRefreshOptions topologyRefreshOptions = ClusterTopologyRefreshOptions.builder() .enableAllAdaptiveRefreshTriggers() .enablePeriodicRefresh(Duration.ofMillis(redisClusterTopologyRefreshPeriodMillis)) .build(); ClusterClientOptions clientOptions = ClusterClientOptions.builder() ... ... .topologyRefreshOptions(topologyRefreshOptions) .build(); 爆炸半径 因lettuce底层采用的是单长连接 + 请求队列的组合模式,一旦遇到网络抖动/闪断,或连接失活,将影响所有请求,尤其是在连接失活场景中,将尝试tcp重传,直至重传超时关闭连接,待连接重建后才能恢复。在重传期间请求队列会不断堆积请求,上层业务非常容易出现批量超时,甚至在部分操作系统内核中的重传超时配置过长,致使业务系统长时间处于不可用状态。因此,不推荐使用lettuce组件,建议用jedis组件替换。
  • SSL连接配置(可选配置) 当实例开启了SSL,通过SSL连接实例时,请将基于Bean方式配置中的RedissonClient构造方法clientConfiguration()中添加如下configRedissonSSL(serverConfig)逻辑,同时将redis的连接地址从redis://ip:port改为rediss://ip:port格式。Redis实例支持SSL的情况请参考配置Redis SSL数据加密传输。 private void configRedissonSSL(BaseConfig serverConfig) { TrustManagerFactory trustManagerFactory = null; try { //加载自定义路径下的ca证书,可结合具体业务配置 CertificateFactory cf = CertificateFactory.getInstance("X.509"); Certificate ca; try (InputStream is = new FileInputStream(certificationPath)) { ca = cf.generateCertificate(is); } //创建keystore String keyStoreType = KeyStore.getDefaultType(); KeyStore keyStore = KeyStore.getInstance(keyStoreType); keyStore.load(null, null); keyStore.setCertificateEntry("ca", ca); //创建TrustManager trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(keyStore); } catch (CertificateException | IOException | KeyStoreException | NoSuchAlgorithmException e) { e.printStackTrace(); return; } serverConfig.setSslTrustManagerFactory(trustManagerFactory); }
  • DCS实例配置建议 读取模式(readMode) 建议采用MASTER,即Master节点承担所有的读写流量,一方面避免数据因主从同步时延带来的一致性问题;另一方面,如果从节点故障,配置值=SLAVE,所有读请求会触发报错;配置值=MASTER_SLAVE,部分读请求会触发异常。读报错会持续failedSlaveCheckInterval(默认180s)时间,直至从可用节点列表中摘除。 如需读写流量分流处理,DCS服务提供了针对读写流量分流的读写分离实例类型,通过在中间架设代理节点实现读写流量分发,遇到从节点故障时,自动切流至主节点,对业务应用无感知,且故障感知时间窗口远小于redisson内部的时间窗口。 订阅模式(subscriptionMode) 建议采用MASTER,原理同读取模式(readMode)。 连接池配置 以下计算方式只适用于一般业务场景,建议根据业务情况做适当调整适配。 连接池的大小没有绝对的标准,建议根据业务流量进行合理配置,一般连接池大小的参数计算公式如下: 最小连接数 =(单机访问Redis QPS)/(1000ms / 单命令平均耗时) 最大连接数 =(单机访问Redis QPS)/(1000ms / 单命令平均耗时)* 150% 举例:某个业务应用的QPS为10000左右,每个请求需访问Redis10次,即每秒对Redis的访问次数为100000次,同时该业务应用有10台机器,计算如下: 单机访问Redis QPS = 100000 / 10 = 10000 单命令平均耗时 = 20ms(Redis处理单命令耗时为5~10ms,遇到网络抖动按照15~20ms来估算) 最小连接数 =(10000)/(1000ms / 20ms)= 200 最大连接数 =(10000)/(1000ms / 20ms)* 150% = 300
  • Go-redis客户端连接Redis 登录弹性云服务器。 弹性云服务器操作系统,这里以Window为例。 在弹性云服务器安装VS 2017社区版。 启动VS 2017,新建一个工程,工程名自定义,这里设置为“redisdemo”。 导入go-redis的依赖包,在终端输入go get github.com/go-redis/redis。 图1 终端输入 编写如下代码: package main import ( "fmt" "github.com/go-redis/redis" ) func main() { // 单机 rdb := redis.NewClient(&redis.Options{ Addr: "host:port", Password: "********", // no password set DB: 0, // use default DB }) val, err := rdb.Get("key").Result() if err != nil { if err == redis.Nil { fmt.Println("key does not exists") return } panic(err) } fmt.Println(val) //集群 rdbCluster := redis.NewClusterClient(&redis.ClusterOptions{ Addrs: []string{"host:port"}, Password: "********", }) val1, err1 := rdbCluster.Get("key").Result() if err1 != nil { if err == redis.Nil { fmt.Println("key does not exists") return } panic(err) } fmt.Println(val1) } 其中,host:port分别为Redis实例的IP地址/域名以及端口。IP地址/域名和端口获取见前提条件,请按实际情况修改后执行。********为创建Redis实例时自定义的密码,请按实际情况修改后执行。 执行go build -o test main.go命令进行打包,如打包名为test可执行文件。 若打包后需要在Linux系统下运行则需要在打包前设置: set GOARCH=amd64 set GOOS=linux 执行./test连接实例。
  • DCS实例配置建议 连接池配置 以下计算方式只适用于一般业务场景,建议根据业务情况做适当调整适配。 连接池的大小没有绝对的标准,建议根据业务流量进行合理配置,一般连接池大小的参数计算公式如下: 最小连接数 =(单机访问Redis QPS)/(1000ms / 单命令平均耗时) 最大连接数 =(单机访问Redis QPS)/(1000ms / 单命令平均耗时)* 150% 举例:某个业务应用的QPS为10000左右,每个请求需访问Redis10次,即每秒对Redis的访问次数为100000次,同时该业务应用有10台机器,计算如下: 单机访问Redis QPS = 100000 / 10 = 10000 单命令平均耗时 = 20ms(Redis处理单命令耗时为5~10ms,遇到网络抖动按照15~20ms来估算) 最小连接数 =(10000)/(1000ms / 20ms)= 200 最大连接数 =(10000)/(1000ms / 20ms)* 150% = 300
  • SSL连接配置(可选配置) 当实例开启了SSL,通过SSL连接实例时,请使用以下内容替换基于Bean方式配置中的JedisClientConfiguration构造方法clientConfiguration()。Redis实例支持SSL的情况请参考配置Redis SSL数据加密传输。 @Bean public JedisClientConfiguration clientConfiguration() throws Exception { JedisClientConfiguration.JedisClientConfigurationBuilder configurationBuilder = JedisClientConfiguration.builder() .connectTimeout(Duration.ofMillis(redisConnectTimeout)) .readTimeout(Duration.ofMillis(redisReadTimeout)); configurationBuilder.usePooling().poolConfig(redisPoolConfig()); configurationBuilder.useSsl().sslSocketFactory(getTrustStoreSslSocketFactory()); return configurationBuilder.build(); } private SSLSocketFactory getTrustStoreSslSocketFactory() throws Exception{ //加载自定义路径下的ca证书,可结合具体业务配置 CertificateFactory cf = CertificateFactory.getInstance("X.509"); Certificate ca; try (InputStream is = new FileInputStream("./ca.crt")) { ca = cf.generateCertificate(is); } //创建keystore String keyStoreType = KeyStore.getDefaultType(); KeyStore keyStore = KeyStore.getInstance(keyStoreType); keyStore.load(null, null); keyStore.setCertificateEntry("ca", ca); //创建TrustManager TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(keyStore); //创建SSLContext SSLContext context = SSLContext.getInstance("TLS"); context.init(null, trustManagerFactory.getTrustManagers(), new SecureRandom()); return context.getSocketFactory(); }
  • Redis-cli客户端连接Redis(Windows版) Windows版本的Redis客户端安装包,请单击这里下载编译包。下载后直接解压安装到自定义目录,然后使用cmd工具进入该目录,执行以下命令连接redis实例: redis-cli.exe -h XXX -p 6379 其中:“XXX”为Redis实例的IP地址/域名,“6379”为Redis实例的端口。IP地址/域名和端口获取见查看实例信息,请按实际情况修改后执行。
  • 前提条件 已成功创建Redis实例,且状态为“运行中”。创建Redis实例的操作请参考购买Redis实例。 已创建弹性云服务器,创建弹性云服务器的方法,请参见购买弹性云服务器。 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境。 如果ECS未安装gcc编译环境,请执行以下命令进行安装: yum install -y make yum install -y pcre-devel yum install -y zlib-devel yum install -y libevent-devel yum install -y openssl-devel yum install -y gcc-c++ 连接实例前确保客户端与Redis实例之间网络互通,具体请参考连接Redis网络要求。
  • StackExchange.Redis客户端连接Redis 查看并获取待连接Redis实例的IP地址/域名和端口。 具体步骤请参见查看和修改DCS实例基本信息。 登录弹性云服务器。 弹性云服务器操作系统,这里以Window为例。 在弹性云服务器安装VS 2017社区版。 启动VS 2017,新建一个工程。 工程名自定义,这里设置为“redisdemo”。 使用VS的nuget管理工具安装C# Redis客户端StackExchange.Redis。 按照如图1操作,进入程序包管理器控制台,在nuget控制台输入:Install-Package StackExchange.Redis -Version 2.2.79。(版本号可以不指定) 图1 进入程序包管理器控制台 编写如下代码,并使用String的set和get测试连接。 using System; using StackExchange.Redis; namespace redisdemo { class Program { // redis config private static ConfigurationOptions connDCS = ConfigurationOptions.Parse("{instance_ip_address}:{port},password=********,connectTimeout=2000"); //the lock for singleton private static readonly object Locker = new object(); //singleton private static ConnectionMultiplexer redisConn; //singleton public static ConnectionMultiplexer getRedisConn() { if (redisConn == null) { lock (Locker) { if (redisConn == null || !redisConn.IsConnected) { redisConn = ConnectionMultiplexer.Connect(connDCS); } } } return redisConn; } static void Main(string[] args) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); //set get string strKey = "Hello"; string strValue = "DCS for Redis!"; Console.WriteLine( strKey + ", " + db.StringGet(strKey)); Console.ReadLine(); } } } 其中,{instance_ip_address}和{port}分别为Redis实例的IP地址/域名以及端口。IP地址/域名和端口获取见1,请按实际情况修改后执行。********为创建Redis实例时自定义的密码,请按实际情况修改后执行。 运行代码,控制台界面输出如下,表示连接成功。 Hello, DCS for Redis! 关于客户端的其他命令,可以参考StackExchange.Redis。
  • 通过访问控制,保护数据安全性 正确的使用DCS提供的访问控制能力,可以有效预防您的数据被异常窃取或者破坏。 建议对不同角色的IAM用户仅设置最小权限,避免权限过大导致数据泄露或被误操作。 为了更好的进行权限隔离和管理,建议您配置独立的IAM管理员,授予IAM管理员IAM策略的管理权限。IAM管理员可以根据您业务的实际诉求创建不同的用户组,用户组对应不同的数据访问场景,通过将用户添加到用户组并将IAM策略绑定到对应用户组,IAM管理员可以为不同职能部门的员工按照最小权限原则授予不同的数据访问权限,详情请参见DCS权限管理。 建议配置白名单或安全组访问控制,保护您的数据不被异常读取和操作。 租户创建DCS实例后,可以通过配置白名单或安全组的方式进行访问控制。租户配置IP白名单或安全组的入方向、出方向规则限制,可以控制连接实例的网络范围,避免DCS暴露给不可信第三方。 Redis 4.0、Redis 5.0和Redis 6.0基础版通过白名单控制,请参考配置白名单。 Redis 6.0企业版通过配置安全组访问规则控制,请参考配置安全组。安全组入方向规则的“源地址”应避免设置为0.0.0.0/0。 建议不使用高危命令,避免攻击者直接对Redis进行致命性破坏。 为避免攻击者直接对Redis进行致命性破坏,如果业务没有使用场景,建议通过命令重命名的方式对其进行禁用, 相关列表请参见默认禁用的命令列表,支持重命名的命令列表。 建议使用非默认端口,避免端口被扫描攻击。 Redis Server监听的端口默认为6379,容易被扫描攻击,建议将端口设置为非默认端口。支持修改的端口范围:1~65535之间的其它端口号。详情请参见自定义或修改端口。 建议限制Redis客户端最大连接数,通过限制使用的资源,降低资源耗尽和拒绝服务风险。 Redis的maxclients参数决定了实例最大支持同时连接的客户端个数,默认值为10000,设置范围为1000~50000。如果超过自定义的连接数阈值,新的连接请求将被拒绝。 建议根据应用的具体使用场景设置合适的客户端最大连接数,限制资源耗尽和拒绝服务的可能性。修改maxclients参数请参见修改配置参数。 建议限制Redis连接闲置等待时间,根据业务实际场景来设置具体时间。 为避免client空闲连接长时间占用资源,可在控制台界面配置闲置等待时间(timeout参数),设置超时阈值后,将在连接空闲指定的秒数后关闭客户端连接。timeout默认值为0,表示服务端不会主动断开客户端的空闲连接。设置范围为0~7200,单位:秒。 建议根据应用的具体使用场景设置实际闲置等待时间,不建议将timeout设置为0。例如,可以将timeout设置为3600秒。避免出现资源耗尽和拒绝服务的可能性。修改timeout参数请参见修改配置参数。 建议将访问DCS实例方式设置为密码访问,防止未经认证的客户端误操作实例。达到对客户端进行认证访问的目的,提高实例使用的安全性。 您可以在购买Redis实例时进行设置访问密码,也可以对已创建的免密实例进行密码重置。 建议为DCS实例配置ACL访问控制权限。 DCS管理员可以为实例创建只读账号或者读写账号,用于不同业务场景下访问DCS的精细管控。 建议不同的业务使用不同的DCS实例,避免实例故障影响多个业务。
  • 审计是否存在异常数据访问 开启 云审计 服务,记录DCS的所有访问操作,便于事后审查。 云审计服务(Cloud Trace Service, CTS ),是华为 云安全 解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 您开通云审计服务并创建和配置追踪器后,CTS可记录DCS的管理事件和数据事件用于审计。详情请参见查看DCS审计日志。 使用 云监控服务 对安全事件进行实时监控和告警。 您在使用DCS的过程中会也可能会遇到服务端返回的错误响应,为使您更好地掌握DCS实例状态,华为云提供了 云监控 服务(Cloud Eye)。您可使用该服务监控自己的DCS实例,执行自动实时监控、告警和通知操作,帮助您实时掌握DCS实例中所产生的请求、流量和错误响应等信息。 云监控服务不需要开通,会在用户创建DCS实例后自动启动。相关文档请参见DCS支持的监控指标、配置DCS监控告警。
  • 构建数据的恢复和容灾能力 预先构建数据的容灾和恢复能力,可以有效避免异常数据处理场景下数据误删、破坏的问题。 建议开启实例自动备份,获得异常场景数据快速恢复能力。 DCS提供自动备份和手动备份两种备份操作。自动备份默认未开启,需要租户选择是否开启,备份存储期限最多7天。同时,开启自动备份后,允许对实例执行备份文件的恢复。自动备份请参见设置备份策略。 说明:手动备份是租户手动触发的实例全量备份,这些备份数据存储在华为OBS桶中,当租户删除实例时,会同步删除OBS桶中的快照。 建议使用跨AZ复制构建数据容灾能力。 DCS的主备和集群实例支持部署高可用实例,租户可选择在单可用区或多可用区中部署实例。当租户选择跨AZ实例时,DCS实例会主动建立和维护Redis同步复制。在实例主节点故障的情况下,缓存实例会自动将备实例升为主节点,从而达到高可用的目的。如果租户使用缓存实例时,业务中读取数据比例大,可以选择4.0以上版本的读写分离实例或者集群多副本实例,缓存实例会自动维护主节点和多个备节点之间的数据同步复制,租户可以根据业务需要连接不同的地址进行读写分离。 当租户选择跨AZ实例时,DCS实例会主动建立和维护Redis同步复制。在实例主节点故障的情况下,缓存实例会自动将备实例升为主节点,从而达到高可用的目的。
  • 如何优化大Key和热Key 类别 方法 大Key 进行大Key拆分。 分为以下几种场景: 该对象为String类型的大Key:可以尝试将对象分拆成几个Key-Value, 使用MGET或者多个GET组成的pipeline获取值,分拆单次操作的压力。如果是集群实例,由于集群实例包含多个分片,拆分后的Key会自动平摊到集群实例的多个分片上,从而降低对单个分片的影响。 该对象为集合类型的大Key,并且需要整存整取:在设计上严格禁止这种场景的出现,因为无法拆分。有效的方法是将该大Key从Redis去除,单独放到其余存储介质上。 该对象为集合类型的大Key,每次只需操作部分元素:将集合类型中的元素分拆。以Hash类型为例,可以在客户端定义一个分拆Key的数量N,每次对HGET和HSET操作的field计算哈希值并取模N,确定该field落在哪个Key上,实现上类似于Redis Cluster的计算slot的算法。 将大Key单独转移到其余存储介质。 无法拆分的大Key建议使用此方法,将不适用Redis能力的数据存至其它存储介质,如SFS或者其余NoSQL数据库,并在Redis中删除该大Key。 注意: 禁止使用DEL直接删除大Key,可能会造成Redis阻塞,甚至主备倒换。Redis 4.0及以上版本建议采用UNLINK命令删除大Key。 合理设置过期时间并对过期数据定期清理。 合理设置过期时间,避免历史数据在Redis中大量堆积。由于Redis的惰性删除策略,过期数据可能并不能及时清理,如果发现Redis过期Key清理较慢,建议配置过期Key扫描。 热Key 使用读写分离。 如果热Key主要是读流量较大,则可以在客户端配置读写分离,降低对主节点的影响。还可以增加多个副本以满足读需求,但是备机较多也有相应的影响,DCS主备节点之间使用的是星型复制,即所有的备节点都直接和主节点保持同步,这样能保证备节点之间相互独立,且复制延迟较小。缺点是在备节点数量较多的情况下,主节点的CPU和网络负载会较高。 使用客户端缓存/本地缓存。 该方案需要提前了解业务的热点Key有哪些,设计客户端/本地和远端Redis的两级缓存架构,热点数据优先从本地缓存获取,写入时同时更新,这样能够分担热点数据的大部分读压力。缺点是需要修改客户端架构和代码,改造成本较高。 设计熔断/降级机制。 热Key极易造成缓存击穿,高峰期请求都直接透传到后端数据库上,从而导致业务雪崩。因此热Key的优化一定需要设计系统的熔断/降级机制,在发生击穿的场景下进行限流和服务降级,保护系统的可用性。
共100000条