Ich versuche, einen Amazon Kinesis Python-Consumer mithilfe der KCL-Bibliothek für Python (https://github.com/awslabs/amazon-kinesis-client-python) zu erstellen. Ich begann mit der Überprüfung des Beispielcodes. Ich konnte sowohl den Producer- als auch den Consumer-Scripts-Teil des Beispielcodes ausführen, aber ich kann nicht überprüfen, ob die Daten meines Kinesis-Streams (mit einem Shard) an das Python-Consumer-Beispielskript sample_kclpy_app.py
gesendet werden.So überprüfen Sie, ob der Amazon Kinesis Python-Client funktioniert
Ich benutzte die amazon_kclpy_helper.py
den Java-Befehl zu erzeugen, der das Python-Skript durch die sample.properties
Datei aufrufen würde. Ich habe den Java-Befehl ausgeführt und kann von der Terminalausgabe sehen, dass die Daten aus dem Kinesis-Stream gelesen werden. Ich fügte eine print
Anweisung in der process_record
Funktion des Python Verbraucherskriptes hinzu, um zu überprüfen, ob die Daten zu ihm geschoben wurden. Aber es wird nicht in der Terminalausgabe angezeigt.
Ich habe auch versucht, mit logging
STDOUT Nachrichten zu generieren, sowie in eine Datei schreiben. Ich fügte auch hinzu assert 0
Zeile in den Python-Code zu zwingen, das Skript fehlschlagen und sehen, eine Ausnahme würde in der Protokollausgabe erscheinen. Dann fügte ich absichtlich einen Syntaxfehler im Python-Code hinzu. Es scheint jedoch, dass all dies von dem Java MultiLangDaemon nicht erkannt wurde, der gerade weiterging und INFO-Protokollnachrichten ausbreitete.
Was könnte das Problem sein? Und gibt es eine bessere Möglichkeit zu überprüfen, ob die Daten tatsächlich an die process_record
Funktion des Python-Consumer-Skript gesendet werden?
Ich musste auch 'python setup.py install' erneut ausführen – sheldonkreger