es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

AWS SDK para IoT en JavaScript: No se puede conectar a AWS (Error al leer las credenciales para AWS_PROFILE default desde undefined)

Estoy intentando sin éxito conectarme a AWS IoT con websockets utilizando el AWS IoT SDK. Estoy obteniendo el error “Error al leer las credenciales para AWS_PROFILE default desde undefined” en la consola del navegador + “Para conectar a través de WebSocket/SigV4, se deben pasar el ID de clave de acceso de AWS y la clave secreta de AWS ya sea en las opciones o como variables de entorno; consulte el archivo README.md” + “Error no capturado: Se han suministrado opciones de conexión no válidas.”

Es la primera vez que publico aquí, así que por favor ten paciencia si consideras que mi forma de describir no es buena:(

Por cierto, he configurado todas las credenciales requeridas correctamente según este ejemplo descripción del enlace
También he dado privilegios de administrador al usuario IAM.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que hay un problema con las credenciales de AWS que se están pasando al aws-iot-sdk en el navegador. El mensaje de error “Error al leer las credenciales de AWS_PROFILE default desde undefined” sugiere que el SDK no puede leer las credenciales de AWS del entorno.

    Para resolver este problema, debes asegurarte de que las credenciales de AWS estén configuradas correctamente en el entorno del navegador. Puedes hacer esto proporcionando el ID de clave de acceso y la clave secreta como opciones al crear el objeto AwsIot o configurándolos como variables de entorno.

    Por ejemplo, si estás utilizando el protocolo de transporte mqttOverWS, puedes crear el objeto AwsIot de la siguiente manera:

    var awsIot = require('aws-iot-device-sdk');
    var device = awsIot.device({
       keyPath: 'ruta/hacia/llave/privada',
      certPath: 'ruta/hacia/certificado',
        caPath: 'ruta/hacia/ca',
      clientId: 'tu-id-único-de-cliente',
        host: 'tu-extremo-iot-amazonaws.com',
      region: 'tu-región-iot',
      protocol: 'wss',
      accessKeyId: 'tu-id-de-clave-de-acceso',
      secretKey: 'tu-clave-secreta'
    });
    

    Alternativamente, puedes configurar las credenciales de AWS como variables de entorno de la siguiente manera:

    process.env.AWS_ACCESS_KEY_ID = 'tu-id-de-clave-de-acceso';
    process.env.AWS_SECRET_ACCESS_KEY = 'tu-clave-secreta';
    
    var awsIot = require('aws-iot-device-sdk');
    var device = awsIot.device({
       keyPath: 'ruta/hacia/llave/privada',
      certPath: 'ruta/hacia/certificado',
        caPath: 'ruta/hacia/ca',
      clientId: 'tu-id-único-de-cliente',
        host: 'tu-extremo-iot-amazonaws.com',
      region: 'tu-región-iot',
      protocol: 'wss'
    });
    

    Asegúrate de reemplazar los marcadores de posición con los valores reales de tus credenciales de AWS, llave privada, certificado y endpoint.

    Si aún encuentras el error “Opciones de conexión no válidas suministradas”, verifica nuevamente las opciones que estás pasando al constructor AwsIot y asegúrate de que sean válidas según la documentación del SDK de AWS IoT. También puedes intentar agregar registros más detallados para ver si hay otros mensajes de error que puedan darte más información sobre el problema.

Comments are closed.