S3 kovasına nesne koymaya çalışırken yapılandırmada kimlik bilgileri eksik

0

Soru

Bir s3 kovasına bir nesne yazmaya çalışan bir ekspres servisim var ancak aşağıdaki hatayı alıyorum:

Yapılandırmada eksik kimlik bilgileri

Kimlik bilgilerimi belirleyen AWS rolümü yerel olarak varsayıyorum .aws/credentials sonra Docker Dosyamda onları konteynerime kopyalıyorum.

RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"

Dokümantasyonda şöyle yazıyor::

SDK, AWS kimlik bilgilerinin değişken olarak ayarlandığını otomatik olarak algılar. çevre ve SDK istekleri için bunları kullanır, ihtiyacı ortadan kaldırır uygulamanızdaki kimlik bilgilerini yönetin. Ortam değişkenleri kimlik bilgilerinizi sağlamak için ayarladığınız:

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

AWS_SESSION_TOKEN (isteğe bağlı)

Yani sdk'yı kullanırken kimlik bilgilerimi manuel olarak yönetmem gerekmiyor mu?

Şu anda s3 kovasına yazmak için kod:

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;
}
1

En iyi cevabı

0

Düğüm bu kodu çalıştıran doğru kullanıcı mı?

Dosya mı /home/node/.aws/credentials gibi bir şey gibi görünüyor:

[default]
aws_access_key_id = <AAK>
aws_secret_access_key = <ASK>

Hata ayıklamak için aşağıdakileri deneyebilirsiniz: AWS kimlik bilgilerinizi doğrudan bu şekilde kodun içine eklemeyi deneyebilirsiniz:

AWS.config.update({
    accessKeyId: "<AAK>",
    secretAccessKey: "<ASK>",
    "region": "<REGION>"
});

Alternatif olarak, silmeyi deneyebilirsiniz /home/node/.aws/credentials kimlik bilgilerini dosyalayın ve şuraya taşıyın /home/node/.aws/config bunun yerine dosya:

[default]
region=<REGION>
output=json
aws_access_key_id = <AAK>
aws_secret_access_key = <ASK>

Alternatif olarak, Dockerfile'ınıza env değişkenleri olarak kimlik bilgileri ve bölge eklemeyi deneyebilirsiniz:

ENV AWS_ACCESS_KEY_ID=<AAK>
ENV AWS_SECRET_ACCESS_KEY=<ASK>
ENV AWS_DEFAULT_REGION=<REGION>
2021-11-25 08:53:02

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................