函数计算,自定义容器响应必须是 404 才会提示失败是吗?我这边异步调用返回 500 仍然提示调用成[阿里云函数计算]

函数计算,自定义容器响应必须是 404 才会提示失败是吗?我这边异步调用返回 500 仍然提示调用成功

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
8 条回复 A 作者 M 管理员
  1. 不是的。根据常规的HTTP状态码约定,HTTP状态码5xx表示服务器内部错误,而HTTP状态码4xx表示客户端发起的请求有误。其中,HTTP状态码404表示请求的资源不存在。

    当自定义容器响应的HTTP状态码为404时,通常表示请求的资源不存在,因而会提示失败。而当自定义容器响应的HTTP状态码为500时,表示服务器内部发生错误,此时也应该提示调用失败,而不是成功。

  2. 您好,函数计算的异步调用,异步调用会将您的请求加入到后端队列,客户端会立即返回。函数计算后端会将队列中的请求做并发调用。因此您的异步调用会返回成功。

  3. 系统错误 FcCommonError 500 函数计算系统错误,可重试解决,如果问题还未能解决,请加入钉钉用户群(钉钉群号:11721331),联系函数计算工程师即时沟通处理
    文档地址:https://help.aliyun.com/document_detail/74769.html?spm=a2c4g.74769.0.i1

  4. 函数计算自定义容器的响应状态码要求是 200 或 204 才会被视为调用成功,而非 404。对于异步调用返回 500 的情况,函数计算会认为请求已经成功接收并且调用完成,不会视为调用失败。

  5. 200 或 404,函数计算会将该响应视为异常,从而触发函数执行失败。

    如果您的函数执行过程中返回了 500 错误码,函数计算也会将该响应视为异常并提示调用失败。

  6. 在函数计算中,自定义容器的响应必须是 404 才会提示失败。如果你的自定义容器异步调用返回了 500 错误,仍然会被视为调用成功。只有当返回状态码为 404 时,函数计算会将其识别为调用失败,并返回相关的错误信息。因此,如果你希望触发函数计算的调用失败逻辑,你需要确保自定义容器的响应状态码为 404。

  7. 要在响应里加一下x-fc-status 的header

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

  8. 在函数计算中,自定义容器的响应状态码决定了函数执行是否成功。如果你的自定义容器返回的响应状态码不是 200 或者 2xx 系列的成功状态码,函数计算将会认为函数执行失败。

    具体来说,以下情况下函数计算会认为函数执行失败:

    1. 如果自定义容器的响应状态码是 404,函数计算将会将这次调用标记为失败,并显示调用失败的提示。

    2. 如果自定义容器的响应状态码是其他非 200 或者 2xx 系列的状态码(如 500),函数计算同样会将这次调用标记为失败,并显示调用失败的提示。

    需要注意的是,函数计算对于自定义容器响应状态码的判断是基于 HTTP 规范的。按照规范,只有 2xx 系列的状态码表示请求成功完成,其他状态码都代表请求出现了错误或异常情况。因此,除了 404 的情况外,任何非 2xx 系列的响应状态码都会被视为函数执行失败。

    如果你想要自定义函数的失败响应,可以根据需要在自定义容器中进行相应的处理和设置。例如,可以在自定义容器中根据业务逻辑返回适当的状态码和错误信息,以便函数计算能够正确判断函数的执行结果。

    总结:在函数计算中,自定义容器响应的状态码决定了函数执行的结果。除了 404 状态码之外,其他非 2xx 系列的状态码都会被认为是函数执行失败的标志。如果你想自定义函数的失败响应,可以根据需要在自定义容器中进行相应的处理和设置。