Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso de un controlador de cliente Go para Cassandra para acceder a Amazon Keyspaces mediante programación

Modo de enfoque
Uso de un controlador de cliente Go para Cassandra para acceder a Amazon Keyspaces mediante programación - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

En esta sección le mostramos cómo conectarse a Amazon Keyspaces mediante un controlador de cliente Go para Cassandra. Para proporcionar a los usuarios y a las aplicaciones credenciales de acceso programático a los recursos de Amazon Keyspaces, puede realizar cualquiera de las siguientes acciones:

  • Cree credenciales específicas del servicio que estén asociadas a un usuario () específico AWS Identity and Access Management . IAM

  • Para mejorar la seguridad, recomendamos crear claves de IAM acceso para IAM los principales que se utilicen en todos los servicios. AWS El complemento de autenticación SiGv4 de Amazon Keyspaces para los controladores de clientes de Cassandra le permite autenticar las llamadas a Amazon Keyspaces IAM mediante claves de acceso en lugar del nombre de usuario y la contraseña. Para obtener más información, consulte Creación y configuración de AWS credenciales para Amazon Keyspaces.

Antes de empezar

Debe completar la siguiente tarea antes de comenzar.

Amazon Keyspaces requiere el uso de Transport Layer Security (TLS) para proteger las conexiones con los clientes. Para conectarse a Amazon Keyspaces medianteTLS, debe descargar un certificado digital de Amazon y configurar el controlador Go que va a utilizar. TLS

Descargue el certificado digital de Starfield utilizando el siguiente comando y guarde sf-class2-root.crt localmente o en su directorio de inicio.

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

También puede utilizar el certificado digital de Amazon para conectarse a Amazon Keyspaces, y puede seguir haciéndolo si su cliente se conecta a Amazon Keyspaces correctamente. El certificado de Starfield proporciona compatibilidad retroactiva adicional para los clientes que utilicen autoridades de certificación más antiguas.

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

Conexión a Amazon Keyspaces mediante el controlador Gocql para Apache Cassandra y credenciales específicas del servicio

  1. Cree un directorio para la aplicación.

    mkdir ./gocqlexample
  2. Vaya al nuevo directorio.

    cd gocqlexample
  3. Cree un archivo para su aplicación.

    touch cqlapp.go
  4. Descargue el controlador Go.

    go get github.com/gocql/gocql
  5. Añada el siguiente código de ejemplo al nuevo archivo.

    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() }

    Notas de uso:

    1. Sustituya "path_to_file/sf-class2-root.crt" por la ruta al certificado guardado en el primer paso.

    2. Asegúrese de que ServiceUserName y ServicePassword coincidan con el nombre de usuario y la contraseña que obtuvo al generar las credenciales específicas del servicio siguiendo los pasos que se indican a continuación. Creación de credenciales específicas del servicio para el acceso programático a Amazon Keyspaces

    3. Para obtener una lista de los puntos de conexión disponibles, consulte Puntos de conexión de servicio para Amazon Keyspaces.

  6. Compile el programa.

    go build cqlapp.go
  7. Ejecute el programa.

    ./cqlapp

Conexión a Amazon Keyspaces mediante el controlador Go para Apache Cassandra y el complemento de autenticación SigV4

El siguiente ejemplo de código muestra cómo utilizar el complemento de autenticación SigV4 para el controlador Go de código abierto para acceder a Amazon Keyspaces (para Apache Cassandra).

Si aún no lo ha hecho, cree las credenciales para su IAM director siguiendo los pasos que se indican en. Creación y configuración de AWS credenciales para Amazon Keyspaces Si una aplicación se ejecuta en Lambda o en una EC2 instancia de Amazon, la aplicación utilizará automáticamente las credenciales de la instancia. Para ejecutar este tutorial de forma local, puede almacenar las credenciales como variables de entorno locales.

Agrega el complemento de autenticación Go SigV4 a tu aplicación desde el GitHub repositorio. El complemento es compatible con la versión 1.2.x del controlador Go de código abierto para Cassandra y depende del de Go. AWS SDK

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

En este ejemplo de código, el punto de conexión de Amazon Keyspaces está representado por la clase Cluster. Utiliza el AwsAuthenticator de la propiedad de autenticador del clúster para obtener las credenciales.

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) } }

Notas de uso:

  1. Sustituya "path_to_file/sf-class2-root.crt" por la ruta al certificado guardado en el primer paso.

  2. Para que este ejemplo se ejecute localmente, debe definir las siguientes variables como variables de entorno:

    • AWS_ACCESS_KEY_ID

    • AWS_SECRET_ACCESS_KEY

    • AWS_DEFAULT_REGION

  3. Para almacenar las claves de acceso fuera del código, consulte las prácticas recomendadas en Almacenamiento de claves de acceso para el acceso programático.

  4. Para obtener una lista de los puntos de conexión disponibles, consulte Puntos de conexión de servicio para Amazon Keyspaces.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.