出现此问题的原因可能是函数执行时间过长,Lambda 默认的超时时间是 3 秒,当 Lambda 执行时间超过这个时间时就会出现 504 错误。 解决此问题的方法如下:
增加 Lambda 的超时时间,可以通过在函数的配置中设置超时时间来实现,建议适当增加超时时间以保证函数执行完成而不超时。
优化函数代码,减少函数执行时间。例如,避免使用循环嵌套或循环过多的语句等。
检查 Lambda 函数所需要的资源配置是否足够,例如内存、网络等,建议适当提高配置以保证函数正常执行。以下是一个示例代码:
module.exports.hello = async (event, context) => {
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1')
const json = await response.json()
return {
statusCode: 200,
body: JSON.stringify({
message: Hello, ${json.title}!
,
input: event,
}),
}
}
在以上示例中,Lambda 函数向指定的 URL 获取数据,并返回数据信息,如果超时时间过短,则会出现 504 错误,可以参考以上方式进行优化解决。