Я развернул кластер кассандры в облачной платформе Google с помощью kubernetes (с terraform).
Кластер кассандры работает нормально, я запускаю некоторые команды с kubectl exec -it cassandra-0 bash
, и данные распространяются на все остальные узлы, все работает хорошо.
Когда я запускаю host cassandra
, я вижу это:
cassandra.default.svc.cluster.local has address 10.32.1.4
cassandra.default.svc.cluster.local has address 10.32.1.5
cassandra.default.svc.cluster.local has address 10.32.3.12
Пока здесь все в порядке.
Но теперь у меня есть вопрос, который я не знаю, как решить.
У меня есть функция Google Cloud, которую я хочу подключить к этой базе данных и вставить некоторые данные.
Каков наилучший способ сделать это? Я думаю, что я не должен выставлять базу данных в Интернете. Но когда я пытаюсь подключить облачную функцию к cassandra.default.svc.cluster.local
, я не вижу сервер.
Я использую cluster_ip = "None"
на службе Кассандры
ОБНОВЛЕНО: Добавлена следующая информация:
Моя функция Google Cloud выглядит так:
exports.helloGET = function helloGET (req, res) {
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ contactPoints: ['cassandra.default.svc.cluster.local'], localDataCenter: 'DC1', keyspace: 'my_bd_name' });
const query = 'SELECT * FROM User';
client.execute(query)
.then(result => console.log('Users: ', dump(result.rows)));
res.send('Cassandra loaded... :' + dump(result.rows));
};