Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Como usar um driver de cliente Cassandra Go para acessar o Amazon Keyspaces programaticamente

Modo de foco
Como usar um driver de cliente Cassandra Go para acessar o Amazon Keyspaces programaticamente - Amazon Keyspaces (para Apache Cassandra)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Esta seção mostra como se conectar ao Amazon Keyspaces usando um driver de cliente Go Cassandra. Para fornecer aos usuários e aplicativos credenciais para acesso programático aos recursos do Amazon Keyspaces, você pode executar uma das seguintes ações:

  • Crie credenciais específicas do serviço associadas a um usuário específico AWS Identity and Access Management ()IAM.

  • Para aumentar a segurança, recomendamos criar chaves de IAM acesso para IAM entidades principais que sejam usadas em todos os AWS serviços. O plug-in de autenticação SigV4 do Amazon Keyspaces para drivers de clientes do Cassandra permite que você autentique chamadas para o Amazon Keyspaces IAM usando chaves de acesso em vez de nome de usuário e senha. Para obter mais informações, consulte Crie e configure AWS credenciais para o Amazon Keyspaces.

Antes de começar

Você precisa concluir a tarefa seguinte antes de iniciar.

O Amazon Keyspaces exige o uso do Transport Layer Security (TLS) para ajudar a proteger as conexões com os clientes. Para se conectar ao Amazon Keyspaces usandoTLS, você precisa baixar um certificado digital da Amazon e configurar o driver Go a ser usado. TLS

Faça o download do certificado digital Starfield usando o comando a seguir e salve sf-class2-root.crt localmente ou em seu diretório inicial.

curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
nota

Você também pode usar o certificado digital da Amazon para se conectar ao Amazon Keyspaces e continuar fazendo isso se seu cliente estiver se conectando ao Amazon Keyspaces com sucesso. O certificado Starfield fornece compatibilidade adicional com versões anteriores para clientes que usam autoridades de certificação mais antigas.

curl https://certs.secureserver.net/repository/sf-class2-root.crt -O

Conecte-se ao Amazon Keyspaces usando o driver Gocql para Apache Cassandra e credenciais específicas do serviço

  1. Crie um diretório para seu aplicativo.

    mkdir ./gocqlexample
  2. Navegue até o novo diretório.

    cd gocqlexample
  3. Crie um arquivo para o aplicativo.

    touch cqlapp.go
  4. Baixe o driver Go.

    go get github.com/gocql/gocql
  5. Adicione o código de exemplo a seguir ao arquivo cqlapp.go.

    package main import ( "fmt" "github.com/gocql/gocql" "log" ) func main() { // add the Amazon Keyspaces service endpoint cluster := gocql.NewCluster("cassandra.us-east-2.amazonaws.com") cluster.Port=9142 // add your service specific credentials cluster.Authenticator = gocql.PasswordAuthenticator{ Username: "ServiceUserName", Password: "ServicePassword"} // provide the path to the sf-class2-root.crt cluster.SslOpts = &gocql.SslOptions{ CaPath: "path_to_file/sf-class2-root.crt", EnableHostVerification: false, } // Override default Consistency to LocalQuorum cluster.Consistency = gocql.LocalQuorum cluster.DisableInitialHostLookup = false session, err := cluster.CreateSession() if err != nil { fmt.Println("err>", err) } defer session.Close() // run a sample query from the system keyspace var text string iter := session.Query("SELECT keyspace_name FROM system_schema.tables;").Iter() for iter.Scan(&text) { fmt.Println("keyspace_name:", text) } if err := iter.Close(); err != nil { log.Fatal(err) } session.Close() }

    Observações de uso:

    1. Substitua "path_to_file/sf-class2-root.crt" pelo caminho para o certificado salvo na primeira etapa.

    2. Certifique-se de que ServiceUserName e ServicePassword corresponda ao nome de usuário e à senha que você obteve ao gerar as credenciais específicas do serviço seguindo as etapas para. Crie credenciais específicas do serviço para acesso programático ao Amazon Keyspaces

    3. Para obter uma lista de endpoints disponíveis, consulte Endpoints de serviço para Amazon Keyspaces.

  6. Crie o programa.

    go build cqlapp.go
  7. Execute o programa.

    ./cqlapp

Conecte-se ao Amazon Keyspaces usando o driver Go para Apache Cassandra e o plug-in de autenticação SigV4

A seção a seguir descreve como usar o plug-in de autenticação SigV4 do driver Go de código aberto para acessar o Amazon Keyspaces (para Apache Cassandra).

Se você ainda não fez isso, crie credenciais para seu IAM diretor seguindo as etapas emCrie e configure AWS credenciais para o Amazon Keyspaces. Se um aplicativo estiver sendo executado no Lambda ou em uma EC2 instância da Amazon, seu aplicativo estará automaticamente usando as credenciais da instância. Para executar este tutorial localmente, você pode armazenar as credenciais como variáveis de ambiente local.

Adicione o plug-in de autenticação Go SigV4 ao seu aplicativo a partir do GitHub repositório. O plug-in suporta a versão 1.2.x do driver Go de código aberto para Cassandra e depende do for Go. AWS SDK

$ go mod init $ go get github.com/aws/aws-sigv4-auth-cassandra-gocql-driver-plugin

Neste exemplo de código, o endpoint do Amazon Keyspaces é representado pela classe Cluster. Ele usa a propriedade AwsAuthenticator para o autenticador do cluster para obter credenciais.

package main import ( "fmt" "github.com/aws/aws-sigv4-auth-cassandra-gocql-driver-plugin/sigv4" "github.com/gocql/gocql" "log" ) func main() { // configuring the cluster options cluster := gocql.NewCluster("cassandra.us-west-2.amazonaws.com") cluster.Port=9142 // the authenticator uses the default credential chain to find AWS credentials cluster.Authenticator = sigv4.NewAwsAuthenticator() cluster.SslOpts = &gocql.SslOptions{ CaPath: "path_to_file/sf-class2-root.crt", EnableHostVerification: false, } cluster.Consistency = gocql.LocalQuorum cluster.DisableInitialHostLookup = false session, err := cluster.CreateSession() if err != nil { fmt.Println("err>", err) return } defer session.Close() // doing the query var text string iter := session.Query("SELECT keyspace_name FROM system_schema.tables;").Iter() for iter.Scan(&text) { fmt.Println("keyspace_name:", text) } if err := iter.Close(); err != nil { log.Fatal(err) } }

Observações de uso:

  1. Substitua "path_to_file/sf-class2-root.crt" pelo caminho para o certificado salvo na primeira etapa.

  2. Para que este exemplo seja executado localmente, você precisa definir as seguintes variáveis como variáveis de ambiente:

    • AWS_ACCESS_KEY_ID

    • AWS_SECRET_ACCESS_KEY

    • AWS_DEFAULT_REGION

  3. Para armazenar chaves de acesso fora do código, consulte as melhores práticas em Armazene chaves de acesso para acesso programático.

  4. Para obter uma lista de endpoints disponíveis, consulte Endpoints de serviço para Amazon Keyspaces.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.