以下是一个AWS Node JS kafka消费者解密kafka消息的代码示例。该示例使用KMS(密钥管理服务)动态解密消息。
npm install kafka-node aws-sdk --save
const AWS = require('aws-sdk');
const kafka = require('kafka-node');
AWS.config.update({region: 'your-aws-region'});
const kms = new AWS.KMS();
const Consumer = kafka.Consumer;
const client = new kafka.Client('your-zookeeper-address');
const consumer = new Consumer(
client,
[{ topic: 'your-topic', partition: 0 }],
{ autoCommit: true }
);
const decryptMessage = (encryptedMessage, callback) => {
const params = {
CiphertextBlob: Buffer.from(encryptedMessage, 'base64')
};
kms.decrypt(params, (err, data) => {
if (err) callback(err);
else {
callback(null, data.Plaintext.toString('utf-8'));
}
});
};
consumer.on('message', (message) => {
decryptMessage(message.value, (err, decryptedMessage) => {
if (err) console.error(err);
else console.log(decryptedMessage);
});
});
consumer.on('error', (err) => {
console.error(err);
});