Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

260
Visualizações
@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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda