Am un serviciu expres, care este încercarea de a scrie un obiect pentru o găleată s3 dar primesc urmatoarea eroare:
Lipsă de acreditare în config
Presupun că-mi AWS rol la nivel local care stabilește recomandările mele în .aws/credentials
apoi, în Dockerfile sunt copiindu-le în container.
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
Documentația spune:
SDK-ul detectează automat AWS prerogativelor stabilite ca variabile în mediu și le folosește pentru SDK cereri, eliminând necesitatea de a gestiona acreditările în cererea dumneavoastră. Variabilele de mediu care setați pentru a oferi acreditările dvs. sunt:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (opțional)
Așa că nu trebuie să manual gestiona acreditările atunci când se utilizează sdk?
În prezent, codul scris la găleată s3:
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;
}