Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从heroku外部使用kafka python连接到heroku kafka实例_Python_Heroku_Apache Kafka - Fatal编程技术网

从heroku外部使用kafka python连接到heroku kafka实例

从heroku外部使用kafka python连接到heroku kafka实例,python,heroku,apache-kafka,Python,Heroku,Apache Kafka,我已经设置了一个heroku kafka实例,我正在尝试使用python使用者连接到它。我通过运行heroku config-s>.env,将heroku环境保存在一个名为.env的文件中,然后在运行此python程序之前加载并导出它: import os from kafka import KafkaConsumer for variable in ['KAFKA_TRUSTED_CERT', 'KAFKA_CLIENT_CERT', 'KAFKA_CLIENT_CERT_KEY']:

我已经设置了一个heroku kafka实例,我正在尝试使用python使用者连接到它。我通过运行
heroku config-s>.env
,将heroku环境保存在一个名为
.env
的文件中,然后在运行此python程序之前加载并导出它:

import os

from kafka import KafkaConsumer

for variable in ['KAFKA_TRUSTED_CERT', 'KAFKA_CLIENT_CERT', 'KAFKA_CLIENT_CERT_KEY']:
    with open(f'{variable}.txt', "w") as text_file:
        print(os.environ[variable], file=text_file)

consumer = KafkaConsumer('test-topic',
                         bootstrap_servers=os.environ['KAFKA_URL'],
                         security_protocol="SSL",
                         ssl_certfile="KAFKA_CLIENT_CERT.txt",
                         ssl_keyfile="KAFKA_CLIENT_CERT_KEY.txt"
)
for msg in consumer:
    print (msg)
我找不到任何看起来可以从变量加载证书的选项,所以我在启动程序时将它们全部放在文件中

当我运行程序时,它会创建临时文件,不会抱怨,但不会打印任何消息

当我像这样使用heroku cli编写主题时

heroku kafka:topics:write test-topic "this is a test"
python客户端不打印消息,但我可以通过

heroku kafka:topics:tail test-topic

有人知道我在python消费者配置中缺少了什么吗?

在官方Heroku Kafka文档中:

它指出使用卡夫卡助手是有益的。如果您查看源代码:


您可以看到,他们正在将Kafka变量写入文件并创建ssl_上下文。

您找到解决方案了吗?我也有同样的问题,但还不能解决。不,我只是因为几个原因使用了不同的卡夫卡服务。是的,很烦人,没有找到合适的例子。谢谢你。