summary refs log tree commit diff
path: root/kafka-send
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2024-07-02 17:26:40 -0500
committerStarfall <us@starfall.systems>2024-07-02 17:27:28 -0500
commita381884d323b67844d0ed7910b37171560a2d9d3 (patch)
treeaa61a0c54cbbed8da20fcafdfded3e110b1e3991 /kafka-send
parentd0649d2d83171a50d538c3690ede74dba7d12dc9 (diff)
kafka-send: new python script to produce kafka messages HEAD main
Diffstat (limited to 'kafka-send')
-rw-r--r--kafka-send/README.md15
-rwxr-xr-xkafka-send/kafka-send.py16
-rw-r--r--kafka-send/requirements.txt3
3 files changed, 34 insertions, 0 deletions
diff --git a/kafka-send/README.md b/kafka-send/README.md
new file mode 100644
index 0000000..297046e
--- /dev/null
+++ b/kafka-send/README.md
@@ -0,0 +1,15 @@
+Tiny Python script to send a message on a Kafka topic, because the command line tools couldn't accept as big a message as we needed.
+
+Setup:
+```
+uv venv
+source .venv/bin/activate
+uv pip sync requirements.txt
+```
+
+Usage:
+```
+kafka-send.py topic path/to/message.json
+```
+
+If you want to use something other than a local Kafka server, add `-s server.host:9092`.
diff --git a/kafka-send/kafka-send.py b/kafka-send/kafka-send.py
new file mode 100755
index 0000000..b8ef414
--- /dev/null
+++ b/kafka-send/kafka-send.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+import argparse
+import kafka
+
+parser = argparse.ArgumentParser()
+parser.add_argument('-s', '--server', default='localhost:9092', help='kafka bootstrap server (default localhost:9092)')
+parser.add_argument('topic', help='kafka topic')
+parser.add_argument('filename', help='file containing the message to be sent')
+args = parser.parse_args()
+
+with open(args.filename, 'r') as file:
+	msg = ''.join(file.readlines()).encode()
+
+producer = kafka.KafkaProducer(bootstrap_servers=args.server)
+producer.send(args.topic, msg)
+producer.flush()
diff --git a/kafka-send/requirements.txt b/kafka-send/requirements.txt
new file mode 100644
index 0000000..6d6d501
--- /dev/null
+++ b/kafka-send/requirements.txt
@@ -0,0 +1,3 @@
+# This file was autogenerated by uv via the following command:
+#    uv pip compile - -o requirements.txt
+kafka-python-ng>=2.0.0