Kafka通过docker连接的自定义环境变量

zynd9foi  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(484)

有没有办法通过docker compose提供可在kafka连接器配置中引用的自定义变量?
我的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"
  }
}

我可以用弹性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.

编辑///////我尝试在环境变量前面加上前缀,如 CONNECT_SQL_SERVER 但那没用。

6gpjuf90

6gpjuf901#

我觉得你正在寻找外部化Kafka连接秘密,但这将需要挂载一个文件,而不是使用环境变量。
docker容器启动时未加载json连接器配置文件。我提出这个问题是为了看看这是否可行。
您必须在外部模板化json文件,然后http将它们发布到容器公开的端口。
尝试在诸如connect\u sql\u server之类的环境变量前面加前缀
这些值将进入kafka connect worker属性,而不是需要由特定连接器任务加载的属性。

相关问题