全部产品
云市场

5. 问题诊断

更新时间:2018-10-11 12:37:40

如果您在使用函数计算作为 API 网关后端服务的过程中遇到一些问题,可参考本文进行问题诊断。

Q1:API 网关触发函数执行时报 503,查看函数日志,函数已经执行成功了,这是怎么回事?

A1:API 网关和函数计算有格式对接要求,如果函数计算返回给 API 网关的结果没有按规定的格式返回,那么 API 网关就认为后端服务不可用。API 网关和函数计算的格式对接要求请参考 API 网关与函数计算格式对接要求

Q2:如何设置返回响应的 content-type ?

A2:如图所示,在 API 设置的时候可以设置响应的 content-type。set_response_content_type

Q3:API 网关触发函数计算执行,已经调通的函数,一段时间不调用,再次调用会报 503,这是什么原因?

A3:一段时间不调用后,函数重新调用需要准备执行环境,有冷启动时延,在 API 网关设置的超时时间内没有调用完,API 网关会认为后端服务不可用,稍微调大一点 API 网关的超时时间即可解决问题。

Q4: 为什么函数中接收到 API 网关传过来的 body 是经过了 base64 编码的?

A4: API 网关对 FORM 形式的 body 传输是不进行 base64 编码的(使用 FORM 形式需要在 API 网关选择入参映射),其他形式 body 都会进行 base64 编码,避免内容传输错误或者丢失。建议您在使用时,先判断 event 中 isBase64 是否为 true,在函数中进行解码。 API 网关传给函数计算的 event 格式请参考 文章