簡體   English   中英

為什么 settimeout 在我的 aws lambda 中導致 502?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM