Hello. One aspect missing is SSL. You either need to enable client-side SSL server cert verification, or set sslOptions.EnableHostVerification to false. Also, ensure the values you are passing for the Cosmos DB Cassandra API account are correct. Here is a snippet which hopefully works better for you:
// connect to the cluster
cluster := gocql.NewCluster("<ACCOUNTNAME>.cassandra.cosmos.azure.com")
cluster.Port = 10350
var sslOptions = new(gocql.SslOptions)
// If you want to enable client-side SSL server cert verification do this:
// sslOptions.EnableHostVerification = true
// sslOptions.CaPath = "<path/to/cert.pem>"
// sslOptions.Config = &tls.Config{}
// sslOptions.ServerName = `ACCOUNTNAME.cassandra.cosmos.azure.com`
// cluster.SslOpts = sslOptions
//If you do NOT want to enable client-side SSL, set sslOptions.EnableHostVerification to false and ignore the other options.
sslOptions.EnableHostVerification = false
cluster.SslOpts = sslOptions
cluster.ProtoVersion = 4
cluster.Authenticator = gocql.PasswordAuthenticator{Username: "<ACCOUNTNAME>", Password: "<PASSWORD>"}
session, _ := cluster.CreateSession()
defer session.Close()
var pk int32
var ck int32
var col1 string
var col2 int64
if err := session.Query(`SELECT * FROM kspc1.tbl1;`).Scan(&pk, &ck, &col1, &col2); err != nil {
log.Fatal(err)
}
fmt.Println("Row:", pk, ck, col1, col2)