axios获取请求错误:请求失败,状态码为504

时间:2019-12-04 23:32:53

标签: node.js amazon-web-services aws-lambda axios

这是我的代码,该代码从Amazon Fargate服务上运行的服务之一向API端点发出Http Get请求。该API由Amazon API网关和Lambda驱动。另外,这是VPC中使用的专用api,并且我还设置了apigateway VPC端点来简化操作。我仅收到一次此错误。随后对API的所有调用均成功。

我怀疑lambda并不温暖,导致超时。我将尝试为axios代码设置超时。欢迎任何建议

async getItems(): Promise < any > {
  try {

    let url = `https://vpce-[id].execute-api.ap-southeast-2.vpce.amazonaws.com/prod/items`


    const response = await axios.get(url, {
      headers: {
        'Authorization': `Bearer ${token}`,
        'x-apigw-api-id': `[api-id]`
      }
    });

    return response.data;

  } catch(error) {
    console.log(error);
    throw error;
  }
}

1 个答案:

答案 0 :(得分:0)

结果是我的lambda在30秒配置的时间后超时。我可以增加lambda超时,但是API网关的可配置超时为30秒。

它只发生过一次,我相信这是因为lambda冷启动。解决方法是,我采用retry方法。该API请求将重试3次。