Ho una express servizio che sta cercando di scrivere un oggetto di un s3 secchio ma ricevo il seguente errore:
Credenziali mancante nel config
Sto assumendo che il mio AWS ruolo a livello locale che stabilisce le mie credenziali .aws/credentials
quindi nel mio Dockerfile io sono la copia in mio contenitore.
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
La documentazione dice:
L'SDK rileva automaticamente AWS credenziali impostate come variabili nel ambiente e li utilizza per il SDK richieste, eliminando la necessità di gestire le credenziali dell'applicazione. Le variabili di ambiente è impostato per fornire le credenziali sono:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (opzionale)
Così non devo gestire manualmente le mie credenziali quando si utilizza l'sdk?
Attualmente il codice per la scrittura s3 secchio:
import s3 from 'aws-sdk/clients/s3';
const s3Client = new s3({region: process.env['region']});
async upload() {
const params = {
Bucket: process.env['bucket'],
Key: 'test.json',
Body: somejsonfile
}
const res = s3Client.upload(params).promise();
return results;
}