Пользовательские переменные среды для Kafka Connect через Docker - PullRequest
0 голосов
/ 02 ноября 2018

Есть ли способ предоставить пользовательские переменные через Docker-Compose, на которые можно ссылаться в конфигурации Kafka Connector?

У меня есть следующая настройка в моем docker-compose.yml:

- "sql_server=1.2.3.4"
- "sql_database=db_name"
- "sql_username=some_user"
- "sql_password=nahman"
- "sql_applicationname=kafka_connect"

Вот мой файл конфигурации .json:

{
  "name": "vwInv_Tran_Amounts",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
    "src.consumer.interceptor.classes": "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor",
    "tasks.max": 2,
    "connection.url": "jdbc:sqlserver://${sql_server};database=${sql_database};user=${sql_username};password={sql_password};applicationname={sql_applicationname}",
    "query": "SELECT * FROM vwInv_Tran_Amounts",
    "mode": "timestamp",
    "topic.prefix": "inv_tran_amounts",
    "timestamp.column.name": "timestamp",
    "incrementing.column.name": "Inv_Tran_ID"
  }
}

Я смог сослаться на переменные окружения, используя этот метод с Elastic Logstash, но он здесь не работает.

Всякий раз, когда я загружаю его через curl, я получаю:

The connection string contains a badly formed name or value. for configuration Couldn't open connection to jdbc:sqlserver://${sql_server};database=${sql_database};user=${sql_username};password={sql_password};applicationname={sql_applicationname}\nInvalid value com.microsoft.sqlserver.jdbc.SQLServerException: The connection string contains a badly formed name or value.

EDIT ///////// Я попытался добавить префикс переменных среды типа CONNECT_SQL_SERVER, и это не сработало.

1 Ответ

0 голосов
/ 02 ноября 2018

Я чувствую, что вы ищете Вывод секретов Kafka Connect , но для этого потребуется монтировать файл, не используя env vars.

Файлы конфигурации JSON Connector не загружаются при запуске контейнера Docker. Я сделал эту проблему , чтобы посмотреть, возможно ли это.

Вам нужно будет создать внешний шаблон JSON-файла, а затем HTTP-POST отправить их в порт, открываемый контейнером.

Пробные переменные среды с префиксом, такие как CONNECT_SQL_SERVER

Эти значения будут идти в свойствах Kafka Connect Worker, а не в свойствах, которые должны быть загружены конкретной задачей коннектора.

...