Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

444
Vistas
Credenciales faltantes en la configuración, si usa AWS_CONFIG_FILE, establezca AWS_SDK_LOAD_CONFIG=1

Cuando intento cargar las credenciales de AWS en mi proyecto, me devuelve un error.

Cuando uso credenciales en texto sin formato, todo funciona bien, pero cuando intento usar variables de entorno, no funciona.

Mensaje de error. :

 Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1

Aquí está mi código probado:

 const AWS = require('aws-sdk'); const SESConfig = { apiVersion: "2010-12-01", accessKeyId: process.env.AWS_SECRET_KEY, accessSecretKey: process.env.AWS_SECRET_KEY, region: "us-east-1" } AWS.config.update(SESConfig); var sns = new AWS.SNS() var sns = new AWS.SNS(); function sendSMS(to_number, message, cb) { sns.publish({ Message: message, Subject: 'Admin', PhoneNumber:to_number }, cb); } // Example const PhoneNumberArray = ['any mobile number'] PhoneNumberArray.forEach(number => { sendSMS(number, "Lorem Ipsum is simply dummy text of the printing and typesetting industry.", (err, result)=>{ console.log("RESULTS: ",err,result) }) })
over 4 years ago · Santiago Trujillo
10 Respuestas
Responde la pregunta

0

Instalar dotenv

 npm install dotenv --save

Cree un archivo .env y agregue sus Variables

 AWS_ACCESS_KEY=1234567890 AWS_SECRET_KEY=XXXXXXXXXXXXXXXXXXX

Carga dotenv en tu proyecto

 require('dotenv').config();

Código completo

 require('dotenv').config(); const AWS = require('aws-sdk'); const SESConfig = { apiVersion: "2010-12-01", accessKeyId: process.env.AWS_ACCESS_KEY, accessSecretKey: process.env.AWS_SECRET_KEY, region: "us-east-1" } AWS.config.update(SESConfig); var sns = new AWS.SNS(); function sendSMS(to_number, message, cb) { sns.publish({ Message: message, Subject: 'Admin', PhoneNumber:to_number }, cb); } const PhoneNumberArray = ['any mobile number'] PhoneNumberArray.forEach(number => { sendSMS(number, "Lorem Ipsum is simply dummy text of the printing and typesetting industry.", (err, result)=>{ console.log("RESULTS: ",err,result) }) })
over 4 years ago · Santiago Trujillo Denunciar

0

Puede intentar crear un AWS_PROFILE con las credenciales si tiene instalada la CLI de AWS.

 $ aws configure --profile testuser AWS Access Key ID [None]: 1234 AWS Secret Access Key [None]: 1234 Default region name [None]: us-east-1 Default output format [None]: text

Después de eso, puede configurar AWS_PROFILE como variable de entorno.

linux / mac

 export AWS_PROFILE=testuser

ventanas

 setx AWS_PROFILE testuser

Después de eso, debería poder ejecutar su programa y AWS obtendrá las credenciales de su perfil. De esta manera, no tiene que guardar sus credenciales en .ENV. Si lo hace, recuerde agregarlo en .gitignore.

https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

over 4 years ago · Santiago Trujillo Denunciar

0

Noté que está configurando su accessKeyId y secretAccessKey en la misma variable de entorno.

 const SESConfig = { apiVersion: "2010-12-01", accessKeyId: process.env.AWS_SECRET_KEY, // should be: process.env.AWS_ACCESS_ID secretAccessKey: process.env.AWS_SECRET_KEY, region: "us-east-1" }

Estos se proporcionan como valores separados por aws y deben estar representados por dos variables de entorno separadas. ¿Quizás este es tu problema?

over 4 years ago · Santiago Trujillo Denunciar

0

De forma predeterminada, el SDK detecta las credenciales de AWS establecidas en su entorno y las utiliza para firmar solicitudes a AWS. De esa manera, no necesita administrar las credenciales en sus aplicaciones.

Unix:

 $ export AWS_ACCESS_KEY_ID="your_key_id" $ export AWS_SECRET_ACCESS_KEY="your_secret_key"

Ventanas:

 > set AWS_ACCESS_KEY_ID="your_key_id" > set AWS_SECRET_ACCESS_KEY="your_secret_key"

también puede agregar $ export AWS_SESSION_TOKEN='your_token' (opcional)

Consulte aws-sdk para obtener más detalles.

o cree un archivo ~/.aws/credentials y agregue:

 [default] aws_access_key_id = <YOUR_ACCESS_KEY_ID> aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>

Consulte aws para obtener más detalles.

over 4 years ago · Santiago Trujillo Denunciar

0

Tenga en cuenta que los nombres de las variables en ~/.aws/credentials distinguen entre mayúsculas y minúsculas. eso fue lo que causo mi problema

over 4 years ago · Santiago Trujillo Denunciar

0

funcionó después de que seguí los nombres exactos de la guía aws para los env vars

https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/loading-node-credentials-environment.html

 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN (Optional)
over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente puede cargar las credenciales a través de un archivo config.json dedicado.

 { "accessKeyId": "<YOUR_ACCESS_KEY_ID>", "secretAccessKey": "<YOUR_SECRET_ACCESS_KEY>", "region": "eu-west-3" }

Luego use el comando de carga de AWS

 AWS.config.loadFromPath('./config.json');

En este caso, no necesitaría actualizar la configuración de AWS AWS.config.update(...); como se hace directamente desde el gecko.

Tenga en cuenta que:

No se admite la carga de credenciales desde un documento JSON en las secuencias de comandos del navegador.

  • Fuente @ https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-json-file.html
over 4 years ago · Santiago Trujillo Denunciar

0

Pude solucionar este problema especificando una apiVersion

 AWS.config.update({ region: 'MY_REGION', apiVersion: 'latest', credentials: { accessKeyId: 'MY_ACCESS_KEY', secretAccessKey: 'MY_SECRET_KEY' } })
over 4 years ago · Santiago Trujillo Denunciar

0

Encontré un problema similar, así que vi algunos videos y leí un montón de documentación. En el archivo dotenv, intente crear el usuario de IAM al que desea otorgar permiso para acceder a la cuenta AWS_PROFILE="exampleProfile" , este debería ser el mismo usuario que de donde obtuvo su clave de acceso y secreto, luego requiere que se vea así.

 const SESConfig = { apiVersion: "2010-12-01", profile:process.env.AWS_PROFILE, accessKeyId: process.env.AWS_ACCESS_KEY, accessSecretKey: process.env.AWS_SECRET_KEY, region: "us-east-1" }
over 4 years ago · Santiago Trujillo Denunciar

0

He almacenado todas las credenciales en mi propio archivo de configuración. Para Windows, lo resolví agregando una variable de entorno a mi aplicación nodejs en .env.local

 AWS_SDK_LOAD_CONFIG=1
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda