无法通过lambda将记录放在kinesis中

时间:2018-06-17 11:25:47

标签: amazon-web-services aws-lambda amazon-kinesis amazon-kinesis-kpl

因为我是lambda和kinesis的新手所以提前道歉。

我有SQS订阅了SNS。 lambda轮询来自SQS的消息,并在XYZ处理后将其发布到kinesis。

我想知道将lambda记录放到kinesis上是否会失败它的重试机制?

假设它通过代码重试策略重试,并再次失败。由于lambda在多次重试后无法将其置于运动中,我们是否有任何机制可以获知有关在kinesis中放置记录失败的通知?它是否会被视为lambda无法处理记录,将它放到SQS DLQ?

它多少次失败(例如将记录推送到订阅SNS的SQS几乎可以忽略不计)?

1 个答案:

答案 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()