Cimpl.KafkaException: KafkaError{code=_INVALID_ARG,val=-186,str="Failed to create consumer: sasl.username and sasl.password must be set"}

Я пытаюсь собрать этот проект микросервисов, но получаю эту ошибку в consumer.py, а также vsc говорит, что он не может импортировать confluent_

Вот код для consumer.py:

import os
import json
import django
from confluent_kafka import Consumer
from rest_framework.exceptions import ValidationError

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
django.setup()


consumer = Consumer({
    'bootstrap.servers': os.environ.get('KAFKA_BOOTSTRAP_SERVER'),
    'security.protocol': os.environ.get('KAFKA_SECURITY_PROTOCOL'),
    'sasl.mechanism': 'PLAIN',
    'sasl.username': os.environ.get('KAFKA_USERNAME'), 
    'sasl.password': os.environ.get('KAFKA_PASSWORD'),
    'group.id': os.environ.get('KAFKA_GROUP'),
    'auto.offset.reset': 'earliest'
    })

consumer.subscribe([os.environ.get('KAFKA_TOPIC')])

while True:
    msg = consumer.poll(1.0)

    if msg is None:
        continue

    if msg.error():
        print(f"Consumer error: {msg.error()}")
        continue

    if msg is not None and not msg.error():

        topic = msg.topic()
        value = msg.value()

        data = json.loads(value)
        print(f'Got this message with Topic: {topic} and value: {value}, with Data: {data}')
        
        if topic == os.environ.get('KAFKA_TOPIC'):
            if msg.key() == b'create_user':
                try:
                    print(f"Order created successfully for user {data['userID']}")
                except ValidationError as e:
                    print(f"Failed to create order for user {data['userID']}: {str(e)}")

consumer.close()

Вот producer.py:

from confluent_kafka import Producer
import os

producer= Producer({
    'bootstrap.servers':os.environ.get('KAFKA_BOOTSTRAP_SERVER'),
    'security.protocol':'SASL_SSL',
    'sasl.mechanism': 'PLAIN',
    'sasl.username':os.environ.get('KAFKA_USERNAME'),
    'sasl.password':os.environ.get('KAFKA_PASSWORD'),
})

Я пробовал понизить образ Python с 3.12 до 3.10, но он все равно не работает

попробовал изменить это

FROM python:3.10 ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 WORKDIR /app COPY requirements.txt /app/requirements.txt RUN pip install -r requirements.txt COPY . /app/ CMD python manage.py runserver 0.0.0.0:8000

Вернуться на верх