我一直在尝试使用gocql连接cosmos cassandra数据库。
func GetSession(cosmosCassandraContactPoint, cosmosCassandraPort, cosmosCassandraUser, cosmosCassandraPassword string) *gocql.Session {
clusterConfig := gocql.NewCluster(cosmosCassandraContactPoint)
port, err := strconv.Atoi(cosmosCassandraPort)
if err != nil {
log.Fatal(err)
}
clusterConfig.Port = port
clusterConfig.ProtoVersion = 4
clusterConfig.Authenticator = gocql.PasswordAuthenticator{Username: cosmosCassandraUser, Password: cosmosCassandraPassword}
clusterConfig.SslOpts = &gocql.SslOptions{Config: &tls.Config{MinVersion: tls.VersionTLS12}}
clusterConfig.ConnectTimeout = 10 * time.Second
clusterConfig.Timeout = 10 * time.Second
clusterConfig.DisableInitialHostLookup = true
// uncomment if you want to track time taken for individual queries
//clusterConfig.QueryObserver = timer{}
// uncomment if you want to track time taken for each connection to Cassandra
//clusterConfig.ConnectObserver = timer{}
session, err := clusterConfig.CreateSession()
if err != nil {
log.Fatal("Failed to connect to Azure Cosmos DB", err)
}
return session
}
我遇到以下错误:
unable to create session: control: unable to connect to initial hosts: Invalid Cosmos DB account or key
不知道这是什么问题。
2条答案
按热度按时间qnzebej01#
看起来您没有为ssl/tls配置必要的选项,特别是证书。
我以前没有连接到cosmos数据库,所以我不确定所需的证书/密钥,但我以前在这篇文章中帮助某人使用正确的tls设置配置gocql驱动程序--https://community.datastax.com/questions/3753/.
在他们的环境中,他们需要提供证书和密钥来连接,如下所示:
详情见上述帖子。我希望这有帮助。干杯!
5rgfhyps2#
看来你的帐户或钥匙是错的。
首先,请确保您的api是cassandra api。您可以在这里查看。
第二,请确保您的帐户或密钥是正确的。
你可以在这里找到它们:
有关详细信息,请参阅本文档。希望这能对你有所帮助。