无法通过 lambda 将记录放入运动中
Failed to put record in kinesis by lambda
由于我是 lambda 和 kinesis 的新手,所以提前致歉。
我有一个 SQS 订阅了 SNS。 lambda 轮询来自 SQS 的消息,并在 XYZ 处理后将其发布到 kinesis。
我想知道如果通过lambda 将记录写入kinesis 失败,它的重试机制是什么?
假设它重试乘以代码重试策略并再次失败。由于 lambda 在多次重试后仍无法将其放入运动中,我们是否有任何机制来获得有关将记录放入运动中失败的通知?会不会认为lambda不能处理记录,放到SQS DLQ?
失败的频率如何(例如,将记录推送到订阅 SNS 的 SQS 的失败几乎可以忽略不计)?
假设:aws lambda 函数正在尝试在 aws 运动流中添加记录。
import boto3
kinesis_client = boto3.resource
attempt = 0
while attempt < 5:
attempt += 1
try:
# trying to add a record in a kniesis stream
response = kinesis_client.put_record(
StreamName='some_stream_1',
Data=data,
PartitionKey='sone_key_123',
)
except Exception as err:
if attempt < 5:
pass
else:
# TODO send an email notification using aws SES
ses_client.send_email()
由于我是 lambda 和 kinesis 的新手,所以提前致歉。
我有一个 SQS 订阅了 SNS。 lambda 轮询来自 SQS 的消息,并在 XYZ 处理后将其发布到 kinesis。
我想知道如果通过lambda 将记录写入kinesis 失败,它的重试机制是什么?
假设它重试乘以代码重试策略并再次失败。由于 lambda 在多次重试后仍无法将其放入运动中,我们是否有任何机制来获得有关将记录放入运动中失败的通知?会不会认为lambda不能处理记录,放到SQS DLQ?
失败的频率如何(例如,将记录推送到订阅 SNS 的 SQS 的失败几乎可以忽略不计)?
假设:aws lambda 函数正在尝试在 aws 运动流中添加记录。
import boto3
kinesis_client = boto3.resource
attempt = 0
while attempt < 5:
attempt += 1
try:
# trying to add a record in a kniesis stream
response = kinesis_client.put_record(
StreamName='some_stream_1',
Data=data,
PartitionKey='sone_key_123',
)
except Exception as err:
if attempt < 5:
pass
else:
# TODO send an email notification using aws SES
ses_client.send_email()