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

函数计算,函数异步调用,被调用函数出错,信息是payload size exceeds maximu

函数计算,函数异步调用,被调用函数出错,信息是payload size exceeds maximum allowed size (131072 bytes),请教一下如何调整?

展开
收起
巴拉巴拉巴拉 2023-07-22 10:43:41 77 0
3 条回答
写回答
取消 提交回答
  • 函数计算的异步调用中,如果被调用函数返回错误信息 "payload size exceeds maximum allowed size (131072 bytes)",这表示传递给被调用函数的输入数据超过了最大允许的大小限制。

    函数计算允许传递的 payload(负载)大小默认为 128 KB(131,072 字节)。如果你的输入数据超过了这个限制,你可以考虑以下几种方法来解决:

    1. 减小负载大小:检查你的函数计算调用代码和参数传递方式,确保你只传递必要的数据。尽量减小传递给被调用函数的数据量,例如只传递必要的参数而不是完整的数据对象。

    2. 分批处理:如果你需要传递大量数据给被调用函数,你可以将数据进行分批处理,在多次异步调用中逐步处理数据。这样可以避免一次性传递大量数据。

    3. 使用其他持久化存储:如果你需要传递非常大的数据或文件,可以将数据存储在阿里云的对象存储服务 OSS 或者其他数据库中,并将数据的位置或标识传递给被调用函数,使其从对应的存储中获取数据。

    4. 调整配置:根据实际需求,你可以考虑调整函数计算的配置参数。例如,你可以增加函数计算的内存配额,因为内存大小与可传递 payload 的大小有关。增加内存可能会提高函数的性能和容量。

    请注意,这里提供的解决方法是一般性的建议,具体应根据你的业务需求和数据量来选择合适的方案。

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

    函数计算的异步调用,有一个最大请求体大小限制是128KB。

    当被调用函数的请求体超过此限制时,就会报payload size exceeds maximum allowed size (131072 bytes)的错误。

    要解决这个问题,有2种方法:

    减小被调用函数的请求体大小
    确保被调用函数的请求体(包括参数和返回值)不超过128KB。

    这通常需要优化被调用函数,减少参数传递。

    调整函数计算的最大请求体大小
    可以通过配置自定义环境变量,来增加最大请求体大小:

    Copy
    FC_MAX_REQUEST_SIZE=262144

    调整为256KB

    然后部署您的函数,函数计算会读取此环境变量,设置最大请求体大小。

    以上两种方法中,第一种通过减小请求体是最佳方案。

    第二种通过调整最大大小,可能会增加函数计算实例的压力。

    2023-07-23 17:48:09
    赞同 展开评论 打赏
  • 同步调用最大32MB 异步调用128KB 这个限制不支持调整 您要先上传到oss,然后再用函数去处理了

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-07-22 20:20:47
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

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