因为我是lambda和kinesis的新手所以提前道歉。
我有SQS订阅了SNS。 lambda轮询来自SQS的消息,并在XYZ处理后将其发布到kinesis。
我想知道将lambda记录放到kinesis上是否会失败它的重试机制?
假设它通过代码重试策略重试,并再次失败。由于lambda在多次重试后无法将其置于运动中,我们是否有任何机制可以获知有关在kinesis中放置记录失败的通知?它是否会被视为lambda无法处理记录,将它放到SQS DLQ?
它多少次失败(例如将记录推送到订阅SNS的SQS几乎可以忽略不计)?
答案 0 :(得分:0)
假设:aws lambda函数试图在aws kinesis流中添加记录。
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()