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

282
Views
@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 answers
Answer question

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 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!