Tengo la siguiente función de Lambda para eliminar un elemento de mi DynamoDB.
const AWS = require("aws-sdk"); AWS.config.update({ region: "us-west-2" }); var docClient = new AWS.DynamoDB.DocumentClient(); var deleteContact = function(event,callback) { var params = { TableName:"Contacts", Key:{ id: event.id }, ConditionExpression: "set event.id = :id", ExpressionAttributeValues: { ":id": event.id } }; console.log("Attempting a conditional delete..."); docClient.delete(params, function(err, data) { if (err) { console.error("Unable to delete item. Error JSON:", JSON.stringify(err, null, 2)); } else { console.log("DeleteItem succeeded:", JSON.stringify(data, null, 2)); } }); }; deleteContact();y aquí está el código en mi aplicación de reacción que solicita:
export const removeContact = createAsyncThunk( 'contactsApp/contacts/removeContact', async (contactId, { dispatch, getState }) => { await axios.post('https://API.amazonaws.com/prod', { key1: `${contactId}` }); console.log(contactId) return contactId; } ); Actualmente, el código funciona y elimina los parámetros en la fila. Pero el problema es que no eliminará la identificación de la tabla de DynamoDB. Entonces todo se eliminará EXCEPTO id.
Como resultado, tendría elementos GHOST en mi tabla de DynamoDB: captura de pantalla de DynamoDB