Я использую лямбда-функцию в пошаговых функциях. Функция написана на Java. Я хочу передать несколько значений, как в этот вопрос .
Код функции выглядит так:
public String handleRequest(S3Event event, Context context) {
//other code...
String eventJsonString = event.toJson();
JsonParser parser = new JsonParser();
JsonObject eventJson = parser.parse(eventJsonString).getAsJsonObject();
eventJson.addProperty("value1", value1);
eventJson.addProperty("value2", value2);
String output = eventJson.toString().replace("\\", "");
logger.log("output: " + output);
return output;
}
Вход в CloudWatch соответствует ожидаемому:
output:
{
"Records": [
{
"awsRegion": "eu-west-1",
"eventName": "ObjectCreated:Put",
"eventSource": "aws:s3",
"eventTime": "1970-01-01T00:00:00.000Z",
"eventVersion": "2.0",
.
.
.
}
Но когда я захожу в консоль пошаговых функций, я вижу, что результат был передан с экранированными кавычками:
"{\"Records\":[{\"awsRegion\":\"eu-west-1\",\"eventName\":\"ObjectCreated:Put\",\"eventSource\":\"aws:s3\",\"eventTime\":\"1970-01-01T00:00:00.000Z\",\"eventVersion\":\"2.0\",...}
Этот вывод не может быть обработан конечным автоматом.
Я не уверен, является ли эта проблема единственной Java или также связана с aws.
Как передать строку json с неэкранированными кавычками, чтобы ее могли использовать следующие компоненты?