0

我正在尝试使用本教程的 kafka 到雪花部分创建一个从 kafka 到雪花的 kafka 连接器。

这是我开始使用的连接配置的完整示例,包含在 curl 请求中。如您所见,它${file:/data/credentials.properties:ENV_VAR_NAME}多次引用以获取 envar:

curl -i -X PUT -H  "Content-Type:application/json" \
    http://localhost:8083/connectors/sink_snowflake_01/config \
    -d '{
        "connector.class":"com.snowflake.kafka.connector.SnowflakeSinkConnector",
        "tasks.max":1,
        "topics":"mssql-01-mssql.dbo.ORDERS",
        "snowflake.url.name":"${file:/data/credentials.properties:SNOWFLAKE_HOST}",
        "snowflake.user.name":"${file:/data/credentials.properties:SNOWFLAKE_USER}",
        "snowflake.user.role":"SYSADMIN",
        "snowflake.private.key":"${file:/data/credentials.properties:SNOWFLAKE_PRIVATE_KEY}",
        "snowflake.database.name":"DEMO_DB",
        "snowflake.schema.name":"PUBLIC",
        "key.converter":"org.apache.kafka.connect.storage.StringConverter",
        "value.converter":"com.snowflake.kafka.connector.records.SnowflakeAvroConverter",
        "value.converter.schema.registry.url":"https://${file:/data/credentials.properties:CCLOUD_SCHEMA_REGISTRY_HOST}",
        "value.converter.basic.auth.credentials.source":"USER_INFO",
        "value.converter.basic.auth.user.info":"${file:/data/credentials.properties:CCLOUD_SCHEMA_REGISTRY_API_KEY}:${file:/data/credentials.properties:CCLOUD_SCHEMA_REGISTRY_API_SECRET}"
    }'

我的问题是:如何将 .env 文件放在集群内的“data/credentials.properties”中,以便我的连接配置能够使用“${...} ” 语法类似于示例连接配置 json 的这一行:

"snowflake.url.name":"${file:/data/credentials.properties:SNOWFLAKE_HOST}",
4

1 回答 1

2

Robin 的教程(感谢您提供链接)具体引用了该凭证文件:

此处显示的所有代码均基于此 github 存储库。如果您继续跟进,请确保使用所有云详细信息设置 .env(从 .env.example 复制模板)。这个 .env 文件在 Docker 容器中挂载到/data/credentials.properties,这是下面连接器配置中引用的内容。

因此,如果您正在使用他的 repo,那么该文件已经为您放置在正确的位置,您可以在https://github.com/confluentinc/demo-scene/blob/master/pipeline-to-the -cloud/docker-compose.yml#L73

于 2022-01-12T21:11:46.780 回答