为什么 settimeout 在我的 aws lambda 中导致 502?

Why does settimeout cause a 502 in my aws lambda?

运行 在节点 10.x lambda 上。如果我删除延迟承诺,我的所有提取调用都会按预期工作。记录提取回调不会产生任何结果。超时似乎只是停止了 lambda。我错过了什么吗?也许 lambdas 运行 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 函数的 execution timeout 太短了。解决方案是增加它。