这是我的代码,该代码从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;
}
}
答案 0 :(得分:0)
结果是我的lambda在30秒配置的时间后超时。我可以增加lambda超时,但是API网关的可配置超时为30秒。
它只发生过一次,我相信这是因为lambda冷启动。解决方法是,我采用retry
方法。该API请求将重试3次。