如何验证Amazon Kinesis Python客户端是否正常工作

如何验证Amazon Kinesis Python客户端是否正常工作,python,amazon-web-services,consumer,amazon-kinesis,Python,Amazon Web Services,Consumer,Amazon Kinesis,我正在尝试使用KCL Python库()构建Amazon Kinesis Python消费者。我首先检查示例代码。我能够运行示例代码中的生产者脚本和消费者脚本部分,但我无法验证来自我的kinesis流(带有一个碎片)的数据是否被推送到示例Python消费者脚本中,即示例Python消费者脚本,sample\u kclpy\u app.py 我使用amazon\u kclpy\u helper.py生成Java命令,该命令将通过sample.properties文件调用Python脚本。我运行了J

我正在尝试使用KCL Python库()构建Amazon Kinesis Python消费者。我首先检查示例代码。我能够运行示例代码中的生产者脚本和消费者脚本部分,但我无法验证来自我的kinesis流(带有一个碎片)的数据是否被推送到示例Python消费者脚本中,即示例Python消费者脚本,
sample\u kclpy\u app.py

我使用
amazon\u kclpy\u helper.py
生成Java命令,该命令将通过
sample.properties
文件调用Python脚本。我运行了Java命令,从终端输出可以看到正在读取来自Kinesis流的数据。我在Python使用者脚本的
process\u record
函数中添加了
print
语句,以检查数据是否被推送到它。但它不会显示在终端输出中

我还尝试使用
日志记录
生成标准输出消息,以及写入文件。我还在Python代码中添加了
assert 0
行,以强制脚本失败,并查看日志输出中将出现的异常。然后,我故意在Python代码中添加了一个语法错误。然而,Java MultiLangDaemon似乎没有检测到所有这些,它只是不断地发出信息日志消息

有什么问题吗?
还有没有更好的方法来检查数据是否确实被发送到Python消费脚本的
进程记录
函数?

我遇到了同样的问题,我的代码似乎从未运行过。直到查看了节点版本,我才意识到
sample.properties
中的
executableName
是运行的命令,而不仅仅是python文件的名称。我更改了
executableName=sample\u kclpy\u app.py
to
executableName=python示例\u kclpy\u app.py

它开始按预期工作。

经过多次尝试和错误,我发现分配给
executableName
的Python脚本应该可以从调用它的Java KCL进程中看到


快速修复方法是将
PATH
环境变量设置为脚本目录,并使脚本成为可执行文件(例如
chmod+x

谢谢您的回答。我也这么做了,并让它发挥作用。我认为真正的诀窍是脚本应该在任何地方都可见(例如,将PATH变量设置为脚本的顶级目录)。我将路径设置为指向脚本目录,通过
chmod
将脚本设置为可执行脚本,并使其正常工作。我还必须重新运行
python setup.py install
太好了。这个问题已经存在3年多了,AWS不会做任何事情来解决它。我猜Bozo忙着叠纸,开发人员忙着对着他们的方块哭。