AWSMSK触发器-Lambda(消费者)无限运行
创始人
2024-09-26 15:01:38
0

这个问题的出现是因为Lambda函数没有正确处理Kafka的消息。其结果是函数不断地尝试重新处理相同的消息,导致无限循环。

以下是一种可能的解决方法,通过使用“记录”功能,将Lambda函数的状态存储在DynamoDB表中,这样每条消息只会被消费一次:

import boto3
import json
import logging
import time

logger = logging.getLogger()
logger.setLevel(logging.INFO)
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('lambda_state')

def lambda_handler(event, context):
    logger.info('Received event: ' + json.dumps(event))

    # Check if message has already been processed
    msg_id = event['Records'][0]['SNS']['MessageId']
    response = table.get_item(Key={'id': msg_id})

    if 'Item' not in response:
        # Process message
        logger.info('Processing message: ' + json.dumps(event))

        # Save state
        table.put_item(Item={'id': msg_id, 'timestamp': int(time.time())})

    else:
        logger.info('Message already processed: ' + json.dumps(event))

    return

此解决方案使用DynamoDB表来存储已处理的消息列表,并检查新的Kafka消息是否在此列表中。如果不在,则处理消息,并将其添加到DynamoDB表中。如果在,则跳过处理。

请注意,此方法仅使用了一个DynamoDB表。但是,在实际生产中,您可能需要使用多个表,具体取决于应用程序的要求和设计。

相关内容

热门资讯

总结一下!闲来游戏辅助器脚本,... 总结一下!闲来游戏辅助器脚本,指尖四川辅助脚本视频,本来有挂(哔哩哔哩)亲,关键说明,闲来游戏辅助器...
揭幕一下!微乐江西小程序辅助器... 揭幕一下!微乐江西小程序辅助器,传送屋激k看底牌辅助软件,真是是有挂(哔哩哔哩)1、超多福利:超高返...
推荐一下!宝宝浙江辅助脚本,越... 推荐一下!宝宝浙江辅助脚本,越乡游义乌辅助器免费试用,确实是真的有挂(哔哩哔哩)宝宝浙江辅助脚本透视...
辅助一下!好友赣南辅助器,掌中... 辅助一下!好友赣南辅助器,掌中乐游戏辅助器,切实真的有挂(哔哩哔哩)好友赣南辅助器透视方法中分为三种...
了解一下!创思维辅助器,友空互... 了解一下!创思维辅助器,友空互娱插件,真是存在有挂(哔哩哔哩)1、点击下载安装,创思维辅助器脚本分类...
普及一下!菠萝辅助app,泸州... 普及一下!菠萝辅助app,泸州大二新手攻略,都是真的是有挂(哔哩哔哩)1、下载好菠萝辅助app透视辅...
解迷一下!广东雀神挂件定制面交... 解迷一下!广东雀神挂件定制面交,腾威互娱辅助工具,好像是真的有挂(哔哩哔哩)1、完成广东雀神挂件定制...
曝光一下!微乐多乐跑作弊,榕城... 曝光一下!微乐多乐跑作弊,榕城510k破解版安卓,真是有挂(哔哩哔哩)1、打开软件启动之后找到中间准...
关于一下!广东雀神智能插件官网... 关于一下!广东雀神智能插件官网,新老夫子脚本免费下载,一直存在有挂(哔哩哔哩)在进入广东雀神智能插件...
曝光一下!小程序微乐游戏辅助器... 曝光一下!小程序微乐游戏辅助器,牛总管手游辅助,原来真的是有挂(哔哩哔哩)小薇(辅助器软件下载)致您...