Я пытаюсь загрузить и извлечь данные из S3 через лямбду, однако в настоящее время он возвращает данные в виде строки.Как вернуть его в виде объекта JSON.
{
«data»:[{ "encryptedString": "D31BKNI8yVwknKXadWIP9LSL06Oss9Xhc5qyZSBHTBDj8TQihTHjoinKJEoKRT03Pt8U / b81ZLxuSOJxw3MU + ZX / CgSolBUPWeH / gD6zA / yKR + aQ0vb / t3g1SysTaOiKK2i5cGuqy3FLbgenn2U43sYKpb97B9h / WKCjGISBsMw ="}]}
* +1008 *
Лямбда запускается с этим Java-код:
public static void cryptoFromLambda(S3Event s3Event) {
System.out.println("Called from Lambda. Records are:");
s3Event.getRecords().forEach(e -> {
try {
String bucket = e.getS3().getBucket().getName();
String key = e.getS3().getObject().getKey().replace('+', ' ');
key = URLDecoder.decode(key, "UTF-8");
AmazonS3Client s3Client = new AmazonS3Client();
String body = s3Client.getObjectAsString(bucket, key);
System.out.println(body);
} catch (UnsupportedEncodingException ex) {
System.out.println(ex.toString());
}
});
System.out.println("end lambda");
}
Каждая строка в CloudWatch напечатана ...
15:26:46 {
15:26:46 "данные": [{
15:26:46 "encryptedString": "D31BKNI8yVwknKXadWIP9LSL06Oss9Xhc5qyZSBHTBDj8TQihTHjoinKJEoKRT03Pt8U / b81ZLxuSOJxw3MU + ZX / CgSolBUPWeH / gD6zA / yKR + aQ0vb / t3g1SysTaOiKK2i5cGuqy3FLbgenn2U43sYKpb97B9h / WKCjGISBsMw ="
* * тысяча двадцать один 15:26:46}] * +1022*
15:26:46}
... тогда как каждая строка мне нужна как элемент JSON, который я могу затем проанализировать.
Я думаю, что мояпроблема больше в том, как я говорю S3, что он должен взять то, чтоЯ ввожу в виде JSON, а не просто текстовый файл, если это возможно.