服务鉴权-获取Token失败
1. 使用OpenAPI GetToken
接口调用获取Token,提示错误:{'CodeN': 100012, 'Code': 'LackPolicy', 'Message': 'Request was rejected because of lack of policy.'}
- 原因:当前用户未开通音频技术OpenAPI的权限。
- 解决方法:请进行授权操作:管控台 → 访问控制 → 用户管理 → 关联策略 → SAMIFullAccess,具体操作可以查看文档访问控制-用户管理。
2. 使用OpenAPI GetToken
接口调用获取Token,提示错误:{"code":420,"msg":"generate token failed"}
- 原因:使用
appkey
不存在,或者当前用户与使用appkey
不对应,比如主账号创建的应用、误使用子账号的密钥进行操作。 - 解决方法:检查access key和appkey是否匹配。
3. 使用OpenAPI GetToken
接口调用获取Token,提示错误:{"code":400,"msg":"param error"}
- 原因:输入参数错误。
- 解决方法:检查HTTP Header是否正确设置
Content-Type: application/json
;检查是否有按照要求传入对应参数。
服务请求处理失败
1. 服务请求发送处理,提示错误:"status_code": 40200002, "status_text": "DeniedAccess:json: cannot unmarshal object...
- 原因:json反序列化问题,客户端发送body数据json格式错误。
- 解决方法:检查入参是否符合规范;入参避免直接拼接json文本,尽量使用转换库,避免转义符号导致的json格式错误。若错误仍然未解决,可以记录
task_id
和错误码等请求相关信息,提交工单进行处理。
2. 调用服务超时,http状态码为504,返回body为:
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx</center>
</body>
</html>
- 原因:调用超时,API超时时间见具体接入文档的
接口说明
,如无特殊说明,API接口默认超时时间为60秒。 - 问题定位:首先根据下面方法计算单并发下的链路整体耗时,耗时包括3个阶段:
- http请求发送阶段:客户端上传音频。该阶段耗时 t1 = 音频大小(单位MB) / (上行带宽(单位Mbps) / 8)。
- 音频技术服务端处理阶段。该阶段耗时 t2 = 服务端实时率rtf * 音频时长(单位秒)。(实时率rtf数据可以大约按照0.1来计算)
- http响应获取阶段:客户端下载结果。该阶段耗时 t3 = 音频大小(单位MB) / (下行带宽(单位Mbps) / 8)。
举例:A客户网络环境为上行带宽50Mbps,下行带宽200Mbps,调用音色转换
服务(rtf按照0.1计算),输入音频时长 = 3分钟,音频大小 = 30MB,假设生成的音频大小也为30MB。则该客户调用一次音色转换
服务的耗时为 t = t1 + t2 + t3 = (30 / (50 / 8)) + (3 * 60 * 0.1) + (30 / (200 / 8)) = 24秒
然后可以根据每步的耗时大小定位到耗时瓶颈。
- 注:若为多并发调用场景,则多并发共用网络带宽,第1步和第3步的耗时会相应增大。
- 解决方案:
- 针对第1和第3阶段,可以考虑提高上/下行网络带宽
- 针对第1阶段,可以选择通过
payload.url
而不是data
字段上传二进制数据 - 针对耗时接口,我们将开发提供异步能力,敬请期待
如需更多帮助请联系技术支持,提供对应请求的 X-Tt-Logid
其他接入问题
1. 公共协议-HTTP的请求参数中payload.url
怎么获取?
- 问题分析:
- 音频技术聚焦音频/音乐的行业解决方案,暂不承接存储相关业务
- url参数不是必传的,仍可选择通过data字段传入数据
- 解决方法:如有相关存储需求,可参考火山引擎-对象存储