具有间歇性502或504(端点请求超时)错误的AWS Lambda

时间:2019-01-25 03:57:17

标签: aws-lambda aws-api-gateway

我在AWS API中遇到一些奇怪的间歇性“ 502”和“ 504”问题

说明/流程:

  1. 有人称呼我的“宠物” API。
  2. “ pet” API将触发“ pet” lambda函数,该函数将调用另一个API,即“ petDetails”。
  3. “ petDetails” API将触发“ petDetails” lambda函数。
  4. “ petDetails” lambda函数超时,原因未知。

petDetails Lambda函数

console.log("Lambda-LibraryLoading");

const Promise = require("bluebird");
const AWS = require('aws-sdk');
var lambda = new AWS.Lambda();

console.log("Lambda-LibraryLoaded");


exports.handler = async function(event, context, callback) {

    console.log("Lambda-FunctionStart");

    console.log(JSON.stringify(event));
}

petDetails登录到AWS Cloudwatch

START RequestId: b0d14e3b-3f2b-4094-8b6c-5bec1e034f35 Version: $LATEST

END RequestId: b0d14e3b-3f2b-4094-8b6c-5bec1e034f35

REPORT RequestId: b0d14e3b-3f2b-4094-8b6c-5bec1e034f35  Duration: 30030.19 ms   Billed Duration: 30000 ms Memory Size: 1536 MB  Max Memory Used: 88 MB  

1 个答案:

答案 0 :(得分:-1)

lambda函数的默认超时为3秒,您可以在aws控制台中将其增加。 这个在第一次执行时花费太多时间的问题称为cold start

您可以避免500s by

  1. 没有太多的顺序调用,因此请求时间更少
  2. 增加lambda函数的超时时间
  3. 通过运行状况检查使lambda函数保持活动状态。

所有这些只是解决方法,您的响应时间仍然很高,您应该重新设计。