将消息从 AWS Lambda 推送到 Kafka

Raj*_*rpu 5 node.js apache-kafka aws-lambda

我有一台在 AWS 中运行的 kafka 机器,它由几个主题组成。我有以下 Lambda 函数,它生成一条消息并将其推送到 kafka 主题之一。

import json from kafka
import KafkaClient from kafka
import SimpleProducer from kafka
import KafkaProducer

def lambda_handler(event, context):
    kafka = KafkaClient("XXXX.XXX.XX.XX:XXXX")
    print(kafka)
    producer = SimpleProducer(kafka, async = True)
    print(producer)
    task_op = {
        "'message": "Hai, Calling from AWS Lambda"
    }
    print(json.dumps(task_op))
    producer.send_messages("topic_atx_ticket_update",json.dumps(task_op).encode('utf-8'))
    print(producer.send_messages)
    return ("Messages Sent to Kafka Topic")
Run Code Online (Sandbox Code Playgroud)

但我看到消息没有像我预期的那样推送。

注意:角色和策略、连接方面没有问题。

Raj*_*rpu 6

创建 Kafka Producer 对象时,

producer = SimpleProducer(kafka, async=True)
Run Code Online (Sandbox Code Playgroud)

“async”字符串应该为 False,例如

producer = SimpleProducer(kafka, async=False)
Run Code Online (Sandbox Code Playgroud)

然后,

您可以将 Kafka 消息从 AWS Lambda 发送到某个主题。