2

Java で記述された AWS Lambda 関数から S3 バケットのキーを一覧表示しようとしています。コードをローカルで実行しても問題なく動作します (ハードコードされた資格情報を使用)。

Lambda で同じ Java コードを実行すると、次の場所でハングします。listObjects

AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials("XXXXXXXXXXXx",
           "XXXXXXXXXXZZZZZZZZZZz"));


ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
        .withBucketName(bucketName)
        .withMaxKeys(10);
ObjectListing objectListing;

do {
    objectListing = s3client.listObjects(listObjectsRequest);

ハードコードされたユーザー資格情報と Lambda 実行ロールの両方に、s3 への完全なアクセス権があります。

S3 アクセスがエラーなしでハングするのはなぜですか? どの権限設定が間違っていますか?

NodeJSを使用してLambdaで同等のものを実行すると機能します

4

1 に答える 1

2

解決策は、Lambda が使用できるメモリを増やすことでした。listObjectsほとんどの実行では、単純な S3コマンドの実行で約 111 MB が Lambda でレポートされます。したがって、128 MB では十分ではなく、512 MB で問題なく動作します。

于 2015-10-14T21:45:42.930 に答える