Solución:
Es por diseño:
A menos que especifique condiciones, DeleteItem es una operación idempotente; ejecutarlo varias veces en el mismo elemento o atributo no da como resultado una respuesta de error.
DE: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html
Es posible utilizar ReturnValues para determinar si la eliminación hizo algo o no. Si ReturnValues.Attributes
está vacío, significa que eliminar no encontró un registro para eliminar, y puede arrojar un error en este caso. Ejemplo en JavaScript:
async function deleteWithThrowIfNotExists() {
const dynamo = new AWS.DynamoDB.DocumentClient();
const parameters = {
Key: {
user: 'john'
},
ReturnValues: 'ALL_OLD',
TableName: 'users'
};
const response = await dynamo.delete(parameters).promise();
if (!response.Attributes) {
throw new Error('Cannot delete item that does not exist')
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)