創建連接時填寫本地私有ip地址,選擇網絡配置

配置任務選擇kafka作為數據源

但是執行任務時日志顯示連接失敗
文檔提到只能用加密通信
如果您希望與 Kafka 數據源建立安全連接,請選擇 Require SSL connection (需要 SSL 連接),并在 Kafka private CA certificate location (Kafka 私有 CA 證書位置) 中,輸入自定義 SSL 證書的有效 Amazon S3 路徑。對于與自我托管式 Kafka 的 SSL 連接,自定義證書是強制性的。對于 Amazon MSK 則是可選的。
啟動帶tls加密的kafka
- https://github.com/PardhuMadipalli/kafka-ssl-docker/tree/main
- 提前將本機ip地址映射到host,
datasource.zhaojiew.work
version: "3"
services:kafka:# image: "pardhu1212/kafka-ssl:0.1.0"image: xxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/kafka-ssl:0.1.0ports:# SSL port- "9093:9093"# Plaintext port- "9094:9094"# zookeeper- "2181:2181"init: trueenvironment:PASSWORD: "Passwd_1qaz"# This can be domain name or IP addressDOMAIN: "datasource.zhaojiew.work"container_name: kafkassl# 非常重要修改hostnamehostname: datasource.zhaojiew.work
復制密鑰到本地
docker cp kafkassl:/kafka_2.12-2.5.0/ssl/server.keystore.jks keystore.jks
客戶端配置
#client.properties
security.protocol=SSL
ssl.truststore.password=Passwd_1qaz
ssl.truststore.location=/home/ec2-user/download/kafka_2.12-3.0.0/bin/keystore.jks
創建topic
./kafka-topics.sh --bootstrap-server datasource.zhaojiew.work:9093 --command-config client.properties --topic glue --create --partitions 1 --replication-factor 1
Created topic glue.
生產消息
./kafka-console-producer.sh --bootstrap-server datasource.zhaojiew.work:9093 --producer.config client.properties --topic glue
創建glue的connection
出現新的報錯,看起來是由于password使用kms加密導致的,關閉賬戶下的connection加密設置
出現新的報錯
檢查發現是沒有指定ca證書,從容器中拷貝出ca證書指定,出現新的報錯
- 這里可以出連接已經建立成功,只不過由于json消息中包含了嵌套消息導致存儲為csv失敗
指定ca證書,ca證書在容器的kafka_home/ssl目錄下的ca.cert,直接重命名為ca.pem拷貝到s3即可
由于剛才已經發送了錯誤的消息結構,因此調整為從latest讀取,并且輸出格式調整為json
成功拿到結果