Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

201
Views
Eliminar función en API Getaway

Tengo una clave de partición y una clave de clasificación en la tabla (DynamoDB)

clave de partición: ClientID clave de clasificación: CaseID

El código de eliminación (Lambda):

 'use strict'; const AWS = require('aws-sdk'); exports.handler = async (event, context) => { const documentClient = new AWS.DynamoDB.DocumentClient(); let responseBody = ""; let statusCode = 0; const {ClientID} = event.pathParameters; const {CaseID} = event.pathParameters; const params = { TableName: "Case", Key: { ClientID: ClientID, CaseID: CaseID } }; try { const data = await documentClient.delete(params).promise(); responseBody = JSON.stringify(data.Items.key); statusCode = 204; } catch(err) { responseBody = `Unable to delete Case: ${err}`; statusCode = 403; } const response = { statusCode: statusCode, headers: { "Content-Type": "application/json", "access-control-allow-origin":"*" }, body: responseBody }; return response; };

Si trato de eliminar un elemento en API Getaway:

Recibí este error:

Estado: 403 No se puede eliminar Caso: Excepción de validación: el elemento clave proporcionado no coincide con el esquema

Como puedo solucionar este error.

En AWS Lambda con API Gateway:

me sale este error:

Respuesta "errorType": "TypeError", "errorMessage": "No se puede desestructurar la propiedad 'ClientID' de 'event.pathParameters' porque no está definida".,

Gracias.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

El problema está en tus params :

 const params = { TableName: "Case", Key: { ClientID: ClientID, CaseID: CaseID } };

Tiene constantes en su código con los mismos nombres que la parte Key de params , por lo que se reemplazaría con el valor de la constante. Debe agregar comillas alrededor de sus claves:

 const params = { TableName: "Case", Key: { "ClientID": ClientID, "CaseID": CaseID } };

Opción 2 Tuve un problema similar en Python, donde también tuve que agregar tipos de datos (básicamente es DynamoDB JSON)

 const params = { TableName: "Case", Key: { "ClientID": {"S": ClientID}, "CaseID": {"S": CaseID} } };
about 4 years ago · Juan Pablo Isaza Report

0

De acuerdo con la documentación (para integraciones de proxy), pathParameters es nulo, por lo que tanto ClientID como CaseID estarán vacíos y obtendrá un error de DynamoDB cuando intente obtener un elemento. Examine el formato del formato de entrada y modifique su código en consecuencia.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!