gpt4 book ai didi

amazon-web-services - 调用了一次 lambda 函数,它执行了两次

转载 作者:行者123 更新时间:2023-12-03 14:00:59 27 4
gpt4 key购买 nike

这更像是一个问题而不是一个问题,但是,有人以前经历过吗?有谁知道如何预防?

我有一个 lambda 函数(L1),它调用第二个 lambda 函数(L2),全部用 NodeJs 编写(运行时:Node.Js 8.10,aws-sdk 应该是 v2.488.0 - 但我只是从文档中粘贴它) .简而言之,L1 应该调用 L2,当它调用时,L2 会执行两次!我通过将日志写入 CloudWatch 发现了这一点,我可以看到一个 L1 日志和两个 L2 日志。

这是 L1 和 L2 的简化版本。

L1:

const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();

module.exports = {
handler: async (event, context, callback) => {
const lambdaParams = {
FunctionName: 'L2',
Qualifier: `dev`,
Payload: JSON.stringify({}),
};

console.log(`Calling: ${JSON.stringify(lambdaParams)}`);
return await lambda.invoke(lambdaParams).promise();
},
};

L2:
module.exports = {
handler: async (event, context, callback) => {
console.log(`L2 called`);
},
};

在 CloudWatch 中,我可以看到一个 Calling ....和两个 L2 called !

顺便说一句,这不会一直发生。这是步骤函数过程的一部分,该过程将调用 L1 10k 次。我的代码的编写方式是,如果 L2 执行两次(每次调用),它将使整个过程失败(因为 L2 仅在记录不存在时才向 DB 插入记录,如果存在则失败)。到目前为止,我设法记录了这种行为 3 次。他们都处理相同的 10k 项,每次都在不同的迭代中面临问题。

有没有人有同样的经历?或者更好的是,知道如何确保一次调用只导致一次执行?

最佳答案

关于amazon-web-services - 调用了一次 lambda 函数,它执行了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57565650/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com