Her çalıştırıldığında S3'ten bir dosya okuması gereken bir Lambda fonksiyonu var.
Dosya çok küçük, yaklaşık 200 bayt, S3 kovası ABD Standart bölgesinde, Lambda işlevi bize doğu-1 bölgesinde (aynı bölgede). Dosyayı okumak 10 ile 15 saniye arasında sürüyor, bu nasıl bu kadar yavaş?AWS Lambda fonksiyonu, S3 dosyasını almak için çok yavaş yavaş
Teşekkürler.
DÜZENLEME: Bazı kod
long start = System.nanoTime();
AmazonS3Client s3Client = new AmazonS3Client();
S3Object propertyFile = null;
try {
propertyFile = s3Client.getObject(S3_BUCKET_NAME, S3_PROPERTY_FILE);
} catch (Exception e) {...}
try (InputStream in = propertyFile.getObjectContent()) {
PROPERTIES.load(in);
} catch (Exception e) {...}
LOGGER.debug("S3 access " + (System.nanoTime() - start));
DÜZENLEME # 2: Brooks'un öneri sonra
AmazonS3Client s3Client = new AmazonS3Client(new InstanceProfileCredentialsProvider());
yaptım Ve bu hatayı alıyorum:
Unable to load credentials from Amazon EC2 metadata service
DÜZENLEME # 3:
1024MB ayırdığımda, Lambda işlevine ayrılan bellek 256 MB oldu. hala çok yavaş olan 3-4 saniye keser (bilgisayarımdan yerel olarak test ettiğimde yaklaşık 1-2 saniye sürer).
Aşağıya oy kullanan kişi bunun nedenini açıklayabilir. –
AmazonS3Client'i başlatırken InstanceProfileCredentialsProvider belirtmeyi deneyin. Varsayılan kurucu, (bu sırayla) ortam değişkenleri, sistem özellikleri, kimlik bilgileri dosyası ve sonra da örnek profili aracılığıyla yetkilendirmeyi denemelidir. Yani, tercih ettiğiniz yetkilendirme yöntemi son. Bunun uzun süreceğini düşünmüyordum, ancak bir şans ver ve bana haber ver. – Brooks
Üzgünüz, ben yanılmışım. Lambda kapsayıcılarının InstanceProfiles ile birlikte gönderildiğini düşünmüştüm (bunun neden olmadığını anlayamıyorum). Ortam değişkenlerinde belirtilen kimlik bilgileriyle birlikte geliyor gibi görünüyor (http://stackoverflow.com/questions/32275169/aws-lambda-custom-triggers). AmazonS3Client'i başlatırken (yeni EnvironmentVariableCredentialsProvider()) belirtmeyi deneyin. Varsayılan kurucu kullanılırken kontrol edilen kimlik listesindeki ilk öğe olsa da, denemek zarar veremez. Bilmemize izin ver. – Brooks