Skip to content

Instantly share code, notes, and snippets.

@maksim77
Created October 8, 2020 09:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maksim77/bc57e08fe0fb7fc7cf7fbc5b5a6dbff0 to your computer and use it in GitHub Desktop.
Save maksim77/bc57e08fe0fb7fc7cf7fbc5b5a6dbff0 to your computer and use it in GitHub Desktop.
package main
import (
"context"
"crypto/tls"
"crypto/x509"
"fmt"
"io/ioutil"
"log"
"time"
ydb "github.com/yandex-cloud/ydb-go-sdk"
iam "github.com/yandex-cloud/ydb-go-sdk/auth/iam"
table "github.com/yandex-cloud/ydb-go-sdk/table"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
defer cancel()
credentials, err := iam.NewClient(
iam.WithServiceFile("sa_name.json"),
iam.WithDefaultEndpoint(),
iam.WithSystemCertPool(),
)
if err != nil {
log.Fatal(err)
}
cert, err := ioutil.ReadFile("/Users/maksim/.ydb/CA.pem")
if err != nil {
log.Fatal(err)
}
rootCerts := x509.NewCertPool()
if ok := rootCerts.AppendCertsFromPEM(cert); !ok {
log.Fatal(err)
}
dialer := &ydb.Dialer{
DriverConfig: &ydb.DriverConfig{
Database: "/ru-central1/b1gp230h62h8oavhctri/etn02s3gn5cvc16rmo1m",
Credentials: credentials,
},
TLSConfig: &tls.Config{
RootCAs: rootCerts,
},
}
driver, err := dialer.Dial(ctx, "ydb.serverless.yandexcloud.net:2135")
if err != nil {
log.Fatal(err)
}
defer driver.Close()
tableClient := table.Client{
Driver: driver,
}
fmt.Println(tableClient)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment