Car*_*los 6 python amazon-web-services consumer amazon-kinesis
我正在尝试使用Python的KCL库(https://github.com/awslabs/amazon-kinesis-client-python)构建Amazon Kinesis Python使用者.我首先检查了示例代码.我能够运行示例代码的生产者和消费者脚本部分,但是我无法验证来自我的kinesis流(带有一个分片)的数据是否被推送到示例Python使用者脚本,sample_kclpy_app.py.
我用它amazon_kclpy_helper.py来生成可以通过sample.properties文件调用Python脚本的Java命令.我运行了Java命令,我可以从终端输出中看到正在读取Kinesis流中的数据.我在Python使用者脚本print的process_record函数中添加了一个语句来检查数据是否被推送到它.但它没有出现在终端输出中.
我也尝试使用logging生成STDOUT消息,以及写入文件.我还在assert 0Python代码中添加了一行来强制使脚本失败并看到异常会出现在日志输出中.然后,我特意在Python代码中添加了语法错误.但是,似乎所有这些都没有被Java MultiLangDaemon检测到,它只是继续生成INFO日志消息.
可能是什么问题呢?有没有更好的方法来检查数据是否确实被发送到process_recordPython使用者脚本的函数?
经过多次试验和错误,我发现分配给的Python脚本executableName应该从调用它的Java KCL进程中可见.
快速解决方法是将PATH环境变量设置为脚本目录并使脚本成为可执行文件(例如chmod +x)
小智 5
我遇到了同样的问题,我的代码似乎从未运行过。直到我查看了 Node 版本,我才意识到executableNameinsample.properties是运行的命令,而不仅仅是 python 文件的名称。我换executableName = sample_kclpy_app.py
到executableName = python sample_kclpy_app.py
,并开始工作正常。
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |