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.
Solución de problemas de conexión en Amazon Keyspaces
¿Tiene problemas para conectarse? A continuación se indican algunos problemas comunes y la forma de resolverlos.
Errores al conectarse a un punto de conexión de Amazon Keyspaces
Las conexiones fallidas y los errores de conexión pueden dar lugar a diferentes mensajes de error. En la siguiente sección se describen los escenarios más comunes.
Temas
No puedo conectarme a Amazon Keyspaces con cqlsh
Está intentando conectarse a un punto de conexión de Amazon Keyspaces con cqlsh y la conexión falla con un Connection error
.
Si intenta conectarse a una tabla de Amazon Keyspaces y cqlsh no se ha configurado correctamente, la conexión falla. En la siguiente sección se ofrecen ejemplos de los problemas de configuración más comunes que causan errores de conexión al intentar establecer una conexión con cqlsh.
nota
Si intentas conectarte a Amazon Keyspaces desde unVPC, necesitarás permisos adicionales. Para configurar correctamente una conexión mediante VPC puntos de conexión, siga los pasos de. Tutorial: Conexión a Amazon Keyspaces mediante un punto final de interfaz VPC
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero obtiene un error de conexión timed out
.
Esto podría deberse a que no ha suministrado el puerto correcto, lo que provoca el siguiente error.
# cqlsh cassandra.us-east-1.amazonaws.com
9140
-u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.199': error(None, "Tried connecting to [('3.234.248.199', 9140)]. Last error: timed out")})
Para resolver este problema, verifique que esté utilizando el puerto 9142 para la conexión.
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero obtiene un error Name or service not known
.
Esto podría deberse a que ha utilizado un punto de conexión que está mal escrito o que no existe. En el siguiente ejemplo, el nombre del punto de conexión está mal escrito.
# cqlsh
cassandra.us-east-1.amazon.com
9142 -u "USERNAME" -p "PASSWORD" --ssl Traceback (most recent call last): File "/usr/bin/cqlsh.py", line 2458, in >module> main(*read_options(sys.argv[1:], os.environ)) File "/usr/bin/cqlsh.py", line 2436, in main encoding=options.encoding) File "/usr/bin/cqlsh.py", line 484, in __init__ load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]), File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.11.0-bb96859b.zip/cassandra-driver-3.11.0-bb96859b/cassandra/policies.py", line 417, in __init__ socket.gaierror: [Errno -2] Name or service not known
Para resolver este problema al utilizar puntos de conexión públicos para conectarse, seleccione un punto de conexión disponible en Puntos de conexión de servicio para Amazon Keyspaces y compruebe que el nombre del punto de conexión no tenga ningún error. Si utilizas VPC puntos de conexión, comprueba que la información de los puntos de VPC conexión sea correcta en tu configuración de cqlsh.
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error OperationTimedOut
.
Amazon Keyspaces requiere que SSL esté habilitado para las conexiones para garantizar una seguridad sólida. Es posible que falte el SSL parámetro si recibe el siguiente error.
# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" Connection error: ('Unable to connect to any servers', {'3.234.248.192': OperationTimedOut('errors=Timed out creating connection (5 seconds), last_host=None',)}) #
Para resolver este problema, añada el siguiente indicador al comando de conexión de cqlsh.
--ssl
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error SSL transport factory requires a valid certfile to be specified
.
En este caso, falta la ruta al TLS certificadoSSL/, lo que provoca el siguiente error.
# cat .cassandra/cqlshrc [connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory # # cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Validation is enabled; SSL transport factory requires a valid certfile to be specified. Please provide path to the certfile in [ssl] section as 'certfile' option in /root/.cassandra/cqlshrc (or use [certfiles] section) or set SSL_CERTFILE environment variable. #
Para resolver este problema, añada la ruta al certfile de su ordenador.
certfile =
path_to_file
/sf-class2-root.crt
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error No such file or directory
.
Este podría deberse a que la ruta al archivo de certificado en su ordenador es incorrecta, lo que provoca el siguiente error.
# cat .cassandra/cqlshrc [connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile = /root/
wrong_path
/sf-class2-root.crt # # cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.192': IOError(2, 'No such file or directory')}) #
Para resolver este problema, compruebe que la ruta al archivo de certificado en su ordenador sea correcta.
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error [X509] PEM lib
.
Este puede ser el caso si el archivo de TLS certificadoSSL/no sf-class2-root.crt
es válido y se produce el siguiente error.
# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.241': error(185090057, u"Tried connecting to [('3.234.248.241', 9142)]. Last error: [X509] PEM lib (_ssl.c:3063)")}) #
Para resolver este problema, descargue el certificado digital de Starfield mediante el siguiente comando. Guarde sf-class2-root.crt
localmente o en su directorio personal.
curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
Estás intentando conectarte a Amazon Keyspaces mediante cqlsh, pero aparece un error. unknown
SSL
Este podría ser el caso si el archivo de TLS certificadoSSL/sf-class2-root.crt
está vacío y se produce el siguiente error.
# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.220': error(0, u"Tried connecting to [('3.234.248.220', 9142)]. Last error: unknown error (_ssl.c:3063)")}) #
Para resolver este problema, descargue el certificado digital de Starfield mediante el siguiente comando. Guarde sf-class2-root.crt
localmente o en su directorio personal.
curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error SSL: CERTIFICATE_VERIFY_FAILED
.
Este podría ser el caso si no se pudo comprobar el archivo de TLS certificadoSSL/, lo que provoca el siguiente error.
Connection error: ('Unable to connect to any servers', {'3.234.248.223': error(1, u"Tried connecting to [('3.234.248.223', 9142)]. Last error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)")})
Para resolver este problema, vuelva a descargar el archivo de certificado con el siguiente comando. Guarde sf-class2-root.crt
localmente o en su directorio personal.
curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error Last error: timed out
.
Este podría ser el caso si no configuraste una regla de salida para Amazon Keyspaces en tu grupo de seguridad de EC2 Amazon, lo que produce el siguiente error.
# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.206': error(None, "Tried connecting to [('3.234.248.206', 9142)]. Last error: timed out")}) #
Para confirmar que este problema se debe a la configuración de la EC2 instancia de Amazon y nocqlsh
, puedes intentar conectarte a tu espacio de claves mediante AWS CLI, por ejemplo, el siguiente comando.
aws keyspaces list-tables --keyspace-name '
my_keyspace
'
Si este comando también agota el tiempo de espera, la EC2 instancia de Amazon no está configurada correctamente.
Para confirmar que tienes permisos suficientes para acceder a Amazon Keyspaces, puedes usar AWS CloudShell para conectarte con. cqlsh
Si se establecen esas conexiones, debes configurar la EC2 instancia de Amazon.
Para resolver este problema, confirma que tu EC2 instancia de Amazon tenga una regla de salida que permita el tráfico a Amazon Keyspaces. Si ese no es el caso, debe crear un nuevo grupo de seguridad para la EC2 instancia y añadir una regla que permita el tráfico saliente a los recursos de Amazon Keyspaces. Para actualizar la regla de salida y permitir el tráfico a Amazon Keyspaces, CQLSHselecciona CASSANDRA/en el menú desplegable Tipo.
Tras crear el nuevo grupo de seguridad con la regla de tráfico saliente, debe añadirlo a la instancia. Seleccione la instancia y, a continuación, elija Acciones, Seguridad y, por último, Cambiar grupos de seguridad. Agregue el nuevo grupo de seguridad con la regla de salida, pero asegúrese de que el grupo predeterminado también permanezca disponible.
Para obtener más información sobre cómo ver y editar las reglas de EC2 salida, consulte Añadir reglas a un grupo de seguridad en la Guía del EC2 usuario de Amazon.
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error Unauthorized
.
Este podría ser el caso si te faltan los permisos de Amazon Keyspaces en la política de IAM usuario, lo que provoca el siguiente error.
# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u "testuser-at-12345678910" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.241': AuthenticationFailed('Failed to authenticate to 3.234.248.241: Error from server: code=2100 [Unauthorized] message="User arn:aws:iam::12345678910:user/testuser has no permissions."',)}) #
Para resolver este problema, asegúrate de que el IAM usuario testuser-at-12345678910
tenga permisos para acceder a Amazon Keyspaces. Para ver ejemplos de IAM políticas que permiten el acceso a Amazon Keyspaces, consulte. Ejemplos de políticas basadas en identidades de Amazon Keyspaces
Para obtener una guía de solución de problemas específica para el IAM acceso, consulteSolución de problemas de identidad y acceso a Amazon Keyspaces.
Está intentando conectarse a Amazon Keyspaces con cqlsh, pero recibe un error Bad credentials
.
Este podría deberse a que el nombre de usuario o la contraseña son incorrectos, lo que provoca el siguiente error.
# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u
"USERNAME"
-p"PASSWORD"
--ssl Connection error: ('Unable to connect to any servers', {'3.234.248.248': AuthenticationFailed('Failed to authenticate to 3.234.248.248: Error from server: code=0100 [Bad credentials] message="Provided username USERNAME and/or password are incorrect"',)}) #
Para resolver este problema, compruebe que USERNAME
y PASSWORD
en su código, coincidan con el nombre de usuario y la contraseña que obtuvo al generar las credenciales específicas del servicio.
importante
Si sigue viendo errores al intentar conectarse con cqlsh, vuelva a ejecutar el comando con la opción --debug
e incluya la salida detallada al contactar con AWS Support.
No puedo conectarme a Amazon Keyspaces con un controlador de cliente de Cassandra
En las siguientes secciones se muestran los errores más comunes al conectarse con un controlador de cliente de Cassandra.
Estás intentando conectarte a una tabla de Amazon Keyspaces mediante el controlador DataStax Java, pero aparece un NodeUnavailableException
error.
Si se interrumpe la conexión desde la que se intenta realizar la solicitud, se produce el siguiente error.
[com.datastax.oss.driver.api.core.NodeUnavailableException: No connection was available to Node(endPoint=vpce-22ff22f2f22222fff-aa1bb234.cassandra.us-west-2.vpce.amazonaws.com/11.1.1111.222:9142, hostId=1a23456b-c77d-8888-9d99-146cb22d6ef6, hashCode=123ca4567)]
Para resolver este problema, busca el valor de los latidos del corazón y bájalo a 30 segundos si es más alto.
advanced.heartbeat.interval = 30 seconds
A continuación, busca el tiempo de espera asociado y asegúrate de que el valor esté establecido en al menos 5 segundos.
advanced.connection.init-query-timeout = 5 seconds
Está intentando conectarse a una tabla de Amazon Keyspaces con un controlador y el complemento SigV4, pero recibe un error AttributeError
.
Si las credenciales no están correctamente configuradas, se produce el siguiente error.
cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘44.234.22.154:9142’: AttributeError(“‘NoneType’ object has no attribute ‘access_key’“)})
Para resolver este problema, compruebe que está transmitiendo las credenciales asociadas a su IAM usuario o función cuando utilice el complemento SiGv4. El complemento SigV4 requiere las siguientes credenciales.
-
AWS_ACCESS_KEY_ID
— Especifica una clave de AWS acceso asociada a un IAM usuario o rol. -
AWS_SECRET_ACCESS_KEY
: especifica la clave secreta asociada a la clave de acceso. Se trata básicamente de la "contraseña" de la clave de acceso.
Para obtener más información sobre claves de acceso y el complemento SigV4, consulte Crear y configurar AWS credenciales para Amazon Keyspaces.
Está intentando conectarse a una tabla de Amazon Keyspaces con un controlador, pero recibe un error PartialCredentialsError
.
Si falta la AWS_SECRET_ACCESS_KEY
, puede producirse el siguiente error.
cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘44.234.22.153:9142’: PartialCredentialsError(‘Partial credentials found in config-file, missing: aws_secret_access_key’)})
Para resolver este problema, compruebe que este pasando tanto el AWS_ACCESS_KEY_ID
como la AWS_SECRET_ACCESS_KEY
al utilizar el complemento SigV4. Para obtener más información sobre claves de acceso y el complemento SigV4, consulte Crear y configurar AWS credenciales para Amazon Keyspaces.
Está intentando conectarse a una tabla de Amazon Keyspaces con un controlador, pero recibe un error Invalid signature
.
Esto podría deberse a que ha utilizado credenciales incorrectas, lo que da lugar al siguiente error.
cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘44.234.22.134:9142’: AuthenticationFailed(‘Failed to authenticate to 44.234.22.134:9142: Error from server: code=0100 [Bad credentials] message=“Authentication failure: Invalid signature”’)})
Para resolver este problema, compruebe que las credenciales que está transfiriendo estén asociadas al IAM usuario o rol que configuró para acceder a Amazon Keyspaces. Para obtener más información sobre claves de acceso y el complemento SigV4, consulte Crear y configurar AWS credenciales para Amazon Keyspaces.
La conexión de mi VPC punto final no funciona correctamente
Estás intentando conectarte a Amazon Keyspaces mediante VPC puntos de enlace, pero recibes errores de mapas simbólicos o estás experimentando un bajo rendimiento.
Este podría ser el caso si la conexión del VPC punto final no está configurada correctamente.
Para resolver estos problemas, verifique los siguientes detalles de configuración. Para seguir un step-by-step tutorial sobre cómo configurar una conexión a través de VPC puntos de enlace de interfaz para Amazon Tutorial: Conexión a Amazon Keyspaces mediante un punto final de interfaz VPC Keyspaces, consulte.
Confirme que la IAM entidad utilizada para conectarse a Amazon Keyspaces tenga acceso de lectura y escritura a la tabla de usuarios y acceso de lectura a las tablas del sistema, como se muestra en el siguiente ejemplo.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "cassandra:Select", "cassandra:Modify" ], "Resource":[ "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable", "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*" ] } ] }
Confirma que la IAM entidad utilizada para conectarse a Amazon Keyspaces tiene los permisos de lectura necesarios para acceder a la información de VPC punto final de tu EC2 instancia de Amazon, como se muestra en el siguiente ejemplo.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"ListVPCEndpoints", "Effect":"Allow", "Action":[ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints" ], "Resource":"*" } ] }
nota
Las políticas
AmazonKeyspacesReadOnlyAccess_v2
gestionadasAmazonKeyspacesFullAccess
incluyen los permisos necesarios para permitir que Amazon Keyspaces acceda a la EC2 instancia de Amazon y lea la información sobre los puntos de enlace de la interfaz VPC disponibles.Para obtener más información sobre los puntos de enlace, VPC consulte Uso de puntos de conexión de VPC de interfaz para Amazon Keyspaces
Confirme que la SSL configuración del controlador de Java establece la validación del nombre de host en false, como se muestra en este ejemplo.
hostname-validation = false
Para obtener más información sobre la configuración del controlador, consulte Paso 2: Configurar el controlador.
-
Para confirmar que el VPC punto final se ha configurado correctamente, puede ejecutar la siguiente sentencia desde suVPC.
nota
No puede usar su entorno de desarrollador local ni el CQL editor Amazon Keyspaces para confirmar esta configuración, ya que utilizan el punto de conexión público.
SELECT peer FROM system.peers;
El resultado debería tener un aspecto similar al de este ejemplo y mostrar entre 2 y 6 nodos con direcciones IP privadas, según la VPC configuración y AWS la región.
peer --------------- 192.0.2.0.15 192.0.2.0.24 192.0.2.0.13 192.0.2.0.7 192.0.2.0.8 (5 rows)
No puedo conectarme utilizando cassandra-stress
Está intentando conectarse a Amazon Keyspaces con el comando cassandra-stress
, pero recibe un error SSL
context
.
Esto ocurre si intentas conectarte a Amazon Keyspaces, pero no tienes la trustStore configuración correcta. Amazon Keyspaces requiere el uso de Transport Layer Security (TLS) para proteger las conexiones con los clientes.
En este caso, aparece el siguiente error.
Error creating the initializing the SSL Context
Para resolver este problema, siga las instrucciones para configurar un, tal y trustStore como se muestra en este temaAntes de empezar.
Una vez trustStore configurado, debería poder conectarse con el siguiente comando.
./cassandra-stress user profile=./profile.yaml n=100 "ops(insert=1,select=1)" cl=LOCAL_QUORUM -node "
cassandra.eu-north-1.amazonaws.com
" -port native=9142 -transport ssl-alg="PKIX" truststore="./cassandra_truststore.jks" truststore-password="trustStore_pw
" -mode native cql3 user="user_name
" password="password
"
No puedo conectarme mediante IAM identidades
Estás intentando conectarte a una tabla de Amazon Keyspaces mediante una IAM identidad, pero recibes un Unauthorized
error.
Esto ocurre si intenta conectarse a una tabla de Amazon Keyspaces utilizando una IAM identidad (por ejemplo, un IAM usuario) sin implementar la política y sin conceder primero al usuario los permisos necesarios.
En este caso, aparece el siguiente error.
Connection error: ('Unable to connect to any servers', {'3.234.248.202': AuthenticationFailed('Failed to authenticate to 3.234.248.202: Error from server: code=2100 [Unauthorized] message="User arn:aws:iam::1234567890123:user/testuser has no permissions."',)})
Para resolver este problema, compruebe los permisos del IAM usuario. Para conectarse con un controlador estándar, un usuario debe tener al menos acceso SELECT
a las tablas del sistema, dado que la mayoría de los controladores leen los espacios de claves/tablas del sistema al establecer la conexión.
Para ver ejemplos de IAM políticas que otorgan acceso al sistema Amazon Keyspaces y a las tablas de usuarios, consulte. Acceso a las tablas de Amazon Keyspaces
Para revisar la sección de solución de problemas específica deIAM, consulteSolución de problemas de identidad y acceso a Amazon Keyspaces.
Estoy intentando importar datos con cqlsh y se pierde la conexión con mi tabla de Amazon Keyspaces
Está intentando cargar datos en Amazon Keyspaces con cqlsh, pero recibe errores de conexión.
La conexión a Amazon Keyspaces falla una vez que el cliente cqlsh recibe tres errores consecutivos de cualquier tipo procedentes del servidor. El cliente cqlsh falla con el siguiente mensaje.
Failed to import 1 rows: NoHostAvailable - , will retry later, attempt 3 of 100
Para resolver este error, debe asegurarse de que los datos que se vayan a importar coincidan con el esquema de la tabla en Amazon Keyspaces. Revise el archivo de importación en busca de errores de análisis sintáctico. Puede intentar utilizar una sola fila de datos mediante una INSERT sentencia para aislar el error.
El cliente intentará restablecer la conexión de forma automática.