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

81
Visualizações
Lambda no está esperando Async/Await

Lamda finaliza el proceso y no espera la respuesta de la API. aquí está mi código:

 exports.handler = async (event, context, cb) => { try { console.log('FETCHING RECORDS FROM DATOCMS') const allItems = await client.items.all({}, { allPages: true }) if (!fs.existsSync(backupDir)){ // Create backup directory console.log('CRETING BACKUP DIRECTORY') fs.mkdirSync(backupDir, { recursive: true }); } console.log('FILL JSON WITH RECORDS FETCHED FROM DATOCMS') fs.writeFileSync('backup/records.json', JSON.stringify(allItems, null, 2)); console.log('ADDING BACKUP FOLDER TO ZIP') zip.addLocalFolder(backupDir); const zipFileContents = zip.toBuffer(); const params = { Bucket: S3_BUCKET, Key: `backup_zip-${backupDate}`, Body: zipFileContents, ContentType: "application/zip", ContentDisposition: `attachment; filename="${fileName}-${backupDate}"` } console.log('UPLOADING ZIP TO S3', params) s3.putObject(params, (err, data) => { if (err) { cb(null, 'Error') throw new Error('The zip file could not be uploaded', err); } console.log('Uploaded correctly') cb(null, 'Success') fs.rmdirSync(backupDir, { recursive: true }); }) } catch (err) { cb(null, 'Error..') throw new Error('An error occurred', err) } }

También intenté agregar estas dos líneas sin suerte.

 setInterval(() => {}, 1000); context.callbackWaitsForEmptyEventLoop = false;

¿Alguien puede ayudarme? He estado probando Promises, Async/Await, Callbacks y no tuve suerte con eso. ¡Gracias!

Esta es la respuesta en CloudWatch

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Intente mapear las promesas, luego await en Promise.all . No estoy seguro de si all devuelve una matriz de promesas.

 const promises = client.items.map(it=>...) const promises = client.items.all(it=>...) await Promise.all(promises)
about 4 years ago · Juan Pablo Isaza Relatório

0

No está esperando s3.putObject . Debería ser:

 const data = s3.putObject(params).promise();

Usted maneja el error en un intento/captura.

about 4 years ago · Juan Pablo Isaza Relatório

0

Quite la palabra clave async del controlador. No puede usar la función de devolución de llamada en la función async/await.

Intente usar la función aws sdk con .promise();

about 4 years ago · Juan Pablo Isaza 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