Revit Design Automation下载资源失败 签名URL失效返回404错误
问题描述
此前已在Forge平台成功运行多个作业,本次遇到全新异常场景:工作项返回In Progress状态后持续闲置约70分钟才正式启动,启动后立刻在资源下载阶段执行失败,初步推测原因为签名URL有效期无法覆盖该等待时长,具体执行日志如下:
[06/10/2022 01:07:09] Starting work item accb10182b02420f925ccd4d113dffbd [06/10/2022 01:07:09] Start download phase. [06/10/2022 01:07:09] Start downloading input: verb - 'GET', url - 'https://developer.api.autodesk.com/oss/v2/signedresources/b70c5565-0ff5-48cb-af7b-b3f57113786e?region=US' [06/10/2022 01:07:10] Embedded resource [{"ViewName": "VR_EXPORT"}] is saved as file: T:\Aces\Jobs\accb10182b02420f925ccd4d113dffbd\params.json. [06/10/2022 01:07:10] Error: Failed - 404 (Not Found) Request: GET https://developer.api.autodesk.com/oss/v2/signedresources/b70c5565-0ff5-48cb-af7b-b3f57113786e?region=US Response Headers: Access-Control-Allow-Headers: Authorization, Accept-Encoding, Range, Content-Type Access-Control-Allow-Methods: GET Access-Control-Allow-Origin: * Date: Fri, 10 Jun 2022 01:07:10 GMT Strict-Transport-Security: max-age=31536000; includeSubDomains x-ads-region: US X-Content-Type-Options: nosniff Connection: keep-alive Response Content Headers: Content-Type: application/json; charset=utf-8 Content-Length: 38 Response Body: {"reason":"Signed Resource not found"}
该问题无法确认是Design Automation服务内部故障导致,还是自身操作配置存在错误。
问题根因
- 推测结论完全成立:Forge Design Automation 提交工作项时自动生成的OSS签名资源URL默认有效期仅为60分钟,当工作项排队等待时长超过该有效期后,实际启动拉取资源时签名已失效,就会返回日志中
404 Signed Resource not found的报错。 - 70分钟的排队时长属于平台高负载下的正常波动,不属于服务内部故障:当对应区域的工作节点资源紧张时,排队时长超过1小时是偶发现象,和业务侧代码逻辑错误无关。
解决方案
- 替换短时效签名URL:不要直接使用提交工作项时接口即时生成的默认签名地址,提前将待处理资源上传至自有OSS存储桶,生成有效期至少24小时的长时效签名URL后再填入工作项输入参数,足以覆盖绝大多数极端排队场景。
- 启用动态拉取模式:配置工作项输入参数时不直接传固定签名URL,改为传入自有服务的资源回调接口地址。当Design Automation实际启动工作项、准备拉取输入资源时,会主动请求该回调接口,由自有服务实时生成最新的有效签名URL返回给平台,从根源上避免签名过期问题。
- 排队超时主动重试:监控工作项状态,若提交后处于
In Progress排队状态时长超过55分钟,直接取消该工作项重新提交即可,无需等待启动后报下载失败再处理,减少无效等待耗时。
内容的提问来源于stack exchange,提问作者Ehsan Barekati
相关产品推荐
相关产品推荐

