Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

438
Views
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 answers
Answer question

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!