Код: Выделить всё
kafka:
bootstrap_servers: "${BOOTSTRAP_SERVERS}"
group: "${GROUP_NAME_1}"
topics:
- name: "${TOPIC_1}"
consumers: "${CONSUMER_NUMBER_FOR_TOPIC_1}"
Код: Выделить всё
from dynaconf import Dynaconf
from dynaconf.validator import Validator
settings = Dynaconf(
envvar_prefix="service-a",
settings_files=['config.yaml'],
load_dotenv=True,
dotenv_path='.env',
validators=[
Validator(
"server.port", must_exist=True
)
]
)
Код: Выделить всё
def start_kafka_consumers():
topics = settings.kafka.topics
threads = []
for topic in topics:
topic_name = topic['name']
consumer_count = topic['consumers']
logger.info(f"{consumer_count} consumers will be started for topic {topic_name}")
for _ in range(consumer_count):
thread = threading.Thread(target=start_consumer_for_topic, args=(topic_name,))
thread.start()
threads.append(thread)
Причина, по которой я хочу использовать заполнитель и файл .env для определения фактического значения, заключается в том, что я хочу запустить его на своем local с соответствующим значением. Затем, позже, когда оно будет загружено в облако GCP, я могу использовать переменные среды (например, секретный менеджер), чтобы перезаписать значение.
Однако заполнитель ${} не работает. как и ожидалось. Dynaconf не использует значение файла .env для замены текста-заполнителя. Есть предложения? Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/791 ... value-in-t