Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

281
Vistas
@aws-sdk/client-lambda] - Invocar Lambda - Respuesta de carga útil en Unit8Array - Convertir a cadena

Estoy usando el paquete @aws-sdk/client-lambda npm para invocar lambdas. Tengo dos lambda. Lambda A y Lambda B. Lambda A está intentando invocar a Lambda B.

Lambda A invoca a Lambda B ejecutando el siguiente código:

 const { LambdaClient, InvokeCommand } = require('@aws-sdk/client-lambda'); module.exports = { getGitHubToken: async () => { const client = new LambdaClient({ region: process.env.REGION }); const params = { FunctionName: process.env.GITHUB_TOKEN_FUNCTION, LogType: 'Tail', Payload: '', }; const command = new InvokeCommand(params); try { const { Payload } = await client.send(command); console.log(Payload); return Payload; } catch (error) { console.error(error.message); throw error; } }, };

La respuesta esperada de Lambda B debería verse así:

 { statusCode: 200, body: JSON.stringify({ token: '123', }), };

Sin embargo, Payload parece devolver esto desde la línea console.log(Payload); :

Respuesta

Busqué en el sitio web de AWS SDK y parece que Payload devuelve un Uint8Array . ¿Supongo que esto es porque es de una promesa?

Intenté hacer Payload.toString() sin embargo, eso regresa simplemente como una cadena de valores en Unit8Array . Ejemplo siendo:

 2021-04-13T14:32:04.874Z worker:success Payload: 123,34,115,116,97,116,117,115,67,111,100,101,34,58,50,48,48,44,34,98,111,100,121,34,58,34,123,92,34,116,111,107,101,110,92,34,58,92,34,103,104,115,95,111,114,101,51,65,109,99,122,86,85,74,122,66,52,90,68,104,57,122,122,85,118,119,52,51,50,111,67,71,48,50,75,121,79,69,72,92,34,125,34,125

Mi pregunta:

¿Cómo resuelvo los datos de Unit8Array a los datos que esperaba de la respuesta de Lambda? ¿Cuál es un objeto JSON?

He confirmado que la Lambda solicitada (Lambda B en este caso) está devolviendo los datos correctamente yendo a CloudWatch. Gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Bien, encontré una manera de hacer que esto funcione.

Tienes que especificar un codificador de texto:

 const asciiDecoder = new TextDecoder('ascii');

Luego decodifícalo para que se vea así:

 const data = asciiDecoder.decode(Payload);

He registrado un problema en su repositorio preguntando por qué esto no está incluido en el módulo. Publicaré una actualización sobre cualquier movimiento al respecto.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda