nextSequenceToken 在 putLogEvents 之后出现异常

nextSequenceToken in case of exception after putLogEvents

我正在遍历一些数据,将元素上传到 CloudWatch。循环的本质是这两行:

const response = await this.cloudwatch.putLogEvents(params).promise();
seqToken = response.nextSequenceToken;

基本上 - 将数据上传到 CloudWatch 并获取下一个序列令牌以进行连续上传。只要没有例外,这就可以正常工作。如果发生异常(例如上传大小太大),我想将其放入 try/catch 块,记录错误消息并继续循环。

我的问题是:在这种情况下,我如何才能获得有效 nextSequenceToken 而不是有效响应?

在大多数情况下,您可以简单地重复使用已有的令牌。

唯一的例外(双关语不是故意的)是如果你得到 InvalidSequenceTokenException。在这种情况下,您需要获取一个新的序列标记。您可以调用 DescribeLogStreams,或者(根据 docs——我从未这样做过)从异常对象中获取 expectedSequenceToken

作为一般性评论,您应该查看特定于操作的异常列表(上面的 link)以及 list of common errors。有些异常是可重试的,有些则不是,你需要适当地处理它们。