2
我試圖從用Java編寫的AWS Lambda函數列出S3存儲桶上的密鑰。在本地運行代碼可以正常工作(使用硬編碼憑據)。從java訪問s3 aws lambda
當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執行角色。 – jarmod
如果嘗試了假定的Lambda執行角色(並且稍後給出了該角色的管理權限,以防萬一)。記錄在listObjects上方,記錄在listObjects未到達之後。執行本地listObjects需要大約一秒鐘的時間。 – user85155
您的Lambda函數超時是什麼?默認值是3秒。此外,CloudWatch日誌是否顯示您的Lambda功能超時? – jarmod