【问题标题】:Push Messages from AWS Lambda to Kafka将消息从 AWS Lambda 推送到 Kafka
【发布时间】:2020-06-03 21:13:40
【问题描述】:

我有一台在 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")

但我看到消息没有按预期推送。

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

【问题讨论】:

  • 能否提供您的代码示例。
  • 在 lambda_handler.py 文件中我正在创建一个 kafka 客户端并使用 Kafka Producer API 来生成消息。从我的本地笔记本电脑上,我能够将消息推送到 kafka 主题
  • 你可以在你的问题中添加代码吗?
  • 您说“...连接没有问题”->您能详细说明您是如何确定这一点的吗?这种情况下的一个常见问题是 Kafka 侦听器配置错误。
  • 从 kafka 导入 json 导入 KafkaClient 从 kafka 导入 SimpleProducer 从 kafka 导入 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":"嘿,从 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")

标签: node.js apache-kafka aws-lambda


【解决方案1】:

在创建 Kafka Producer 对象时,

producer = SimpleProducer(kafka, async=True)

“async”字符串应该是False,比如

producer = SimpleProducer(kafka, async=False)

那么,

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

【讨论】:

    猜你喜欢
    • 2022-06-11
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2016-09-22
    • 2018-03-25
    相关资源
    最近更新 更多