【发布时间】:2019-06-05 03:49:47
【问题描述】:
我设置了一个触发 lambda 函数的 AWS SQS 队列。作为默认行为,一次最多可以触发 10 条消息(默认 batchSize)。
如果 lambda 由于任何原因失败,它将失败整个批次并最终重试。但是,假设我有一封发送 lambda 的电子邮件,它在前 N 个案例中成功执行,但在 N+1 中失败。如果它重试整个批次,它将重复电子邮件。
目前我只能考虑将batchSize设置为1来避免这个问题,但我希望能避免它。还有其他方法吗?
节点代码很简单,大概是这样:
exports.handler = async event => {
try {
await Promise.all(
event.Records.map(async record => {
// SEND EMAIL ASYNC
});
);
} catch (error) {
[...];
throw error;
}
}
【问题讨论】:
标签: aws-lambda amazon-sqs