[英]Why does settimeout cause a 502 in my aws lambda?
在節點 10.x lambda 上運行。如果我刪除延遲 promise,我的所有提取調用都會按預期工作。 記錄提取回調不會產生任何結果。 超時似乎只是停止了 lambda。我錯過了什么嗎? 也許 lambda 運行 nodeJS 的方式是獨一無二的?
以下是我的代碼的簡化版本。
import fetch from "node-fetch";
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
export const handler = async (): Promise<any> => {
try {
const publishedEvents = [
'event 1',
'event 2',
'event 3'
]
for (const publishEvent of publishedEvents) {
await fetch('url', { method: 'POST', body: publishEvent });
await delay(60000);
}
return {
statusCode: 200,
body: 'Published all Events'
};
} catch (e) {
return {
statusCode: 400,
body: 'Failed Call'
}
}
};
根據評論。
問題是 lambda 函數的執行超時太短。 解決方案是增加它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.