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

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

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

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

如图所示,在API设置的时候可以设置响应的content-type。更多详细内容请参见创建API

content-type

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

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

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

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