开发者社区 > 云原生 > Serverless > 正文

函数计算FC现在前端在淘宝小程序后端是基于云函数,同步请求的话有http超时的问题,看下这个问题?

函数计算FC现在前端应用是在淘宝小程序里面,后端是基于云函数的,同步请求的话有http超时的问题,且受平台控制,看下这个问题?例如现在的场景:业务服务A 〉http请求平台控制最长10秒 〉SD函数计算。这个过程我看您的解释应该还是会受到超时限制对不?

展开
收起
冰激凌甜筒 2023-07-12 13:02:52 62 0
3 条回答
写回答
取消 提交回答
  • 是的,函数计算(Function Compute,FC)同步请求会受到平台的超时限制。在您提到的场景中,如果业务服务 A 向 SD 函数计算发起 HTTP 请求,并且平台控制最长的超时时间为 10 秒,那么该请求也会受到这个超时限制。

    当使用同步方式发起 HTTP 请求时,函数计算会等待并接收来自外部服务的响应,如果在超时时间内没有收到响应,函数计算将会被强制终止并返回一个超时错误。这是出于平台限制和资源管理的考虑。

    为了避免超时错误,可以考虑以下几种方法:

    1. 异步请求:将请求改为异步方式,并采用回调或者消息队列等方式来处理响应。这样可以避免同步请求超时的问题。

    2. 优化请求时间:检查业务服务 A 和 SD 函数计算之间的网络延迟和性能瓶颈,尽可能优化请求时间。例如,使用 CDN 加速、缓存机制等技术手段。

    3. 分割任务:如果请求需要较长的处理时间,可以将任务分割成多个小任务,并通过异步方式进行处理。这样可以避免单个请求耗时过久导致超时。

    4. 调整超时设置:根据业务需求和函数计算平台的限制,适当调整超时设置。但请注意,过长的超时时间可能会增加函数计算的资源消耗。

    2023-07-23 09:22:43
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    是的,你所说的场景中,如果前端应用向云函数发起同步 HTTP 请求,那么仍然会受到函数计算平台的超时控制。函数计算平台会强制限制同步请求的最长执行时间,一旦超时就会自动终止请求,返回超时错误。

    为了解决这个问题,可以考虑使用异步请求来替代同步请求。具体来说,您可以将前端应用发起的 HTTP 请求转换为异步请求,即将请求发送到消息队列或事件总线等消息中间件中,然后由函数计算异步处理这些请求。这样可以避免同步请求的超时问题,并且提供更好的可伸缩性和容错性。

    2023-07-22 19:38:23
    赞同 展开评论 打赏
  • 咱们在淘宝小程序调用 一个中间层服务 A,A服务本身是同步响应,功能是做一个提示词的包装和对SD 包装服务的异步调用, SD包装服务我们看做是B, B服务主要是用来同步请求sd推理,生成图片后上传OSS,这个是为了得到一个OSS的公共地址。 A请求B的时候只需要请求头设置一下异步的类型就可以, B在执行完之后还需要设置异步策略,来通知到您的客户端,此回答整理自钉群"【答疑群】人人都是创作家,Serverless 部署 AIGC 场景"

    2023-07-12 13:25:54
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    All in Serverless 阿里云核心产品全面升级 立即下载
    AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
    极氪大数据 Serverless 应用实践 立即下载