Ich habe eine Dynamodb-Tabelle mit Streaming aktiviert. Außerdem habe ich einen Trigger für diese Tabelle erstellt, der eine AWS-Lambda-Funktion aufruft. Innerhalb dieser Lambda-Funktion versuche ich, das neue Bild (Dynamodb-Element nach der Änderung) aus dem Dynamodb-Stream zu lesen und zu versuchen, die reine JSON-Zeichenfolge daraus zu erhalten. Meine Frage ist, wie bekomme ich die reine JSON-Zeichenfolge des DynamoDB-Elements, das über den Stream gesendet wurde? Ich benutze das unten stehende Code-Snippet, um das neue Image zu erhalten, aber ich habe keine Ahnung, wie ich den JSON-String daraus bekommen kann. Schätze deine Hilfe.Wie bekomme ich die reine JSON-Zeichenfolge von DynamoDB stream neues Bild?
public class LambdaFunctionHandler implements RequestHandler<DynamodbEvent, Object> {
@Override
public Object handleRequest(DynamodbEvent input, Context context) {
context.getLogger().log("Input: " + input);
for (DynamodbStreamRecord record : input.getRecords()){
context.getLogger().log(record.getEventID());
context.getLogger().log(record.getEventName());
context.getLogger().log(record.getDynamodb().toString());
Map<String,AttributeValue> currentRecord = record.getDynamodb().getNewImage();
//how to get the pure json string of the new image
//..............................................
}
return "Successfully processed " + input.getRecords().size() + " records.";
}
}
Meine eigentliche Absicht hier war, die Daten von Dynamodb zu elastischen Suchserver zu senden, wenn ein Element in Dynamodb eingefügt/aktualisiert/gelöscht wird. Das habe ich mit der Python-Lambda-Code-Vorlage erreicht, die in der AWS-Benutzerkonsole verfügbar ist (neue Lambda-Funktion erstellen). Also ohne Bedenken, den reinen JSON-String aus dem Dynamodb-Stream-Event zu entfernen, konnte ich Daten direkt vom Dynamodb-Stream an den Amazon Elastic-Suchdienst mit der oben genannten Code-Vorlage senden. Hoffe das hilft für jemanden. –