如何验证 Amazon Kinesis Python 客户端是否正常工作
How to verify that Amazon Kinesis Python client is working
我正在尝试使用 Python (https://github.com/awslabs/amazon-kinesis-client-python) 的 KCL 库构建 Amazon Kinesis Python 消费者。我从检查示例代码开始。我能够 运行 示例代码的生产者和消费者脚本部分,但我无法验证来自我的运动流(使用一个分片)的数据是否被推送到示例 Python消费者脚本,sample_kclpy_app.py
.
我使用 amazon_kclpy_helper.py
生成 Java 命令,该命令将通过 sample.properties
文件调用 Python 脚本。我 运行 Java 命令,我可以从终端输出中看到正在读取来自 Kinesis 流的数据。我在 Python 消费者脚本的 process_record
函数中添加了一个 print
语句来检查数据是否被推送到它。但是它没有出现在终端输出中。
我还尝试使用 logging
生成 STDOUT 消息,以及写入文件。我还在 Python 代码中添加了 assert 0
行以强制使脚本失败,并看到异常将出现在日志输出中。然后,我故意在 Python 代码中添加了语法错误。然而,似乎所有这些都没有被 Java MultiLangDaemon 检测到,它只是继续运行并输出 INFO 日志消息。
可能是什么问题?
有没有更好的方法来检查数据是否确实被发送到 Python 消费者脚本的 process_record
函数?
我遇到了同样的问题,我的代码似乎从来没有 运行。直到我查看了 Node 版本,我才意识到 sample.properties
中的 executableName
是 运行 的命令,而不仅仅是 python 文件的名称。我将 executableName = sample_kclpy_app.py
更改为 executableName = python sample_kclpy_app.py
,它开始按预期工作。
经过多次试验和错误,我发现分配给 executableName
的 Python 脚本应该可以从调用它的 Java KCL 进程中看到。
快速修复是将 PATH
环境变量设置为脚本的目录并使脚本成为可执行文件(例如 chmod +x
)
我正在尝试使用 Python (https://github.com/awslabs/amazon-kinesis-client-python) 的 KCL 库构建 Amazon Kinesis Python 消费者。我从检查示例代码开始。我能够 运行 示例代码的生产者和消费者脚本部分,但我无法验证来自我的运动流(使用一个分片)的数据是否被推送到示例 Python消费者脚本,sample_kclpy_app.py
.
我使用 amazon_kclpy_helper.py
生成 Java 命令,该命令将通过 sample.properties
文件调用 Python 脚本。我 运行 Java 命令,我可以从终端输出中看到正在读取来自 Kinesis 流的数据。我在 Python 消费者脚本的 process_record
函数中添加了一个 print
语句来检查数据是否被推送到它。但是它没有出现在终端输出中。
我还尝试使用 logging
生成 STDOUT 消息,以及写入文件。我还在 Python 代码中添加了 assert 0
行以强制使脚本失败,并看到异常将出现在日志输出中。然后,我故意在 Python 代码中添加了语法错误。然而,似乎所有这些都没有被 Java MultiLangDaemon 检测到,它只是继续运行并输出 INFO 日志消息。
可能是什么问题?
有没有更好的方法来检查数据是否确实被发送到 Python 消费者脚本的 process_record
函数?
我遇到了同样的问题,我的代码似乎从来没有 运行。直到我查看了 Node 版本,我才意识到 sample.properties
中的 executableName
是 运行 的命令,而不仅仅是 python 文件的名称。我将 executableName = sample_kclpy_app.py
更改为 executableName = python sample_kclpy_app.py
,它开始按预期工作。
经过多次试验和错误,我发现分配给 executableName
的 Python 脚本应该可以从调用它的 Java KCL 进程中看到。
快速修复是将 PATH
环境变量设置为脚本的目录并使脚本成为可执行文件(例如 chmod +x
)