【问题标题】:Can I consume an AWS MSK kafka topic from a Lambda function?我可以使用 Lambda 函数中的 AWS MSK kafka 主题吗?
【发布时间】:2020-08-10 20:13:44
【问题描述】:

我认为使用 lambda 来使用到达 AWS MSK Kafka 集群中某个主题的消息会很简单,但我无法从 AWS 文档中找到一种方法。有没有可能?

【问题讨论】:

    标签: apache-kafka aws-lambda aws-msk


    【解决方案1】:

    是的。您可以在 Lambda 代码中使用 Kafka 客户端库。在下面找到 Python 的示例:

    #!/bin/env python
    
    import json
    import logging
    import time
    import os
    from kafka import KafkaConsumer               
    
    
    """
    Read data from MSK and console it out.
    
    Required environment variables:
    MSK_BOOTSTRAP_SRV: MSK Bootstrap servers. 
    MSK_TOPIC_NAME: MSK topic. 
    
    """
    kafka_client = None
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)
    
    def lambda_handler(event, context):
        logger.debug('MSK consumer starts.')
        try:
            consumer = KafkaConsumer(os.environ['MSK_TOPIC_NAME'], auto_offset_reset='earliest',
                                 bootstrap_servers=os.environ['MSK_BOOTSTRAP_SRV'], api_version=(0, 10), consumer_timeout_ms=1000)
            
            for msg in consumer:
                print(msg.value)
    
            if consumer is not None:
                consumer.close()
                
        except Exception as ex:
            logger.error('Exception: {}'.format(ex))
        return
    

    【讨论】:

    • 什么会触发客户端消费主题?
    • 如果您使用 AWS Lambda,则已经有一个集成。如果您使用其他东西,则需要消费者从主题中提取消息。编程语言库可以帮助您。
    猜你喜欢
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 2021-04-15
    相关资源
    最近更新 更多