Я установил экземпляр heroku kafka, и я пытаюсь подключиться к нему с помощью приемника Python.У меня есть окружение heroku в файле с именем .env
, для которого нужно перейти heroku config -s > .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)
Я не смог найти параметры, которые выглядели так, как ониможет загружать сертификаты из переменной, поэтому я помещаю их все в файлы при запуске программы.
Когда я запускаю программу, она создает временные файлы и не жалуется, но не печатает никакихmessages.
Когда я пишу в тему, используя heroku cli, как это
heroku kafka:topics:write test-topic "this is a test"
клиент python не печатает сообщение, но я могу увидеть сообщение, набрав
heroku kafka:topics:tail test-topic
Кто-нибудь знает, чего мне не хватает в потребительской конфигурации Python?