es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

cómo obtener un determinado artículo con un índice secundario

Me gustaría pedir ayuda; estoy tratando de obtener un elemento específico de la tabla dynamodb llamándolo con el id específico (clave primaria) y con un índice secundario global llamado index_book.

La función de interés es la siguiente:

case "GET /book/{id}":
        body = await dynamo
          .get({
            TableName: "book",
            Key: {
              id: event.pathParameters.id
            }
          })
          .promise();
        break;

En el momento en que intento llamar a la URL con un id específico, por ejemplo /book/7 (donde 7 es el id), obtengo el siguiente error:

“El elemento clave proporcionado no coincide con el esquema”

¿Me pueden ayudar por favor? Les estaré muy agradecido.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basado en el mensaje de error, parece que hay un problema con la clave primaria que estás utilizando para buscar el elemento de la tabla DynamoDB.

    Asegúrate de que la clave primaria que estás utilizando en tu objeto Key coincida con la especificada en el esquema de tu tabla book.

    Por ejemplo, si tu esquema especifica que la clave primaria es book_id, entonces debes cambiar tu código a:

    Key: {
       book_id: event.pathParameters.id
    }
    

    Si la clave primaria es correcta, asegúrate de que el parámetro id que estás pasando en la URL coincida con el tipo de dato especificado en tu esquema para la clave primaria.

    Si esto no resuelve tu problema, es posible que estés intentando obtener un elemento que no existe en la tabla. Asegúrate de que el id que estás utilizando exista en la tabla y no esté mal escrito.

    Finalmente, si el problema persiste, intenta habilitar el registro en tu función Lambda y verifica los registros de CloudWatch en busca de mensajes de error o información adicional.

Comments are closed.