6

Ho un problema con AWS Lambda in cui le mie immagini ridimensionate vengono danneggiate ogni pochi caricamenti. Ho scritto uno script che estrae S3 e lo ridimensiona in 3 dimensioni in un altro bucket, principalmente con filestreams. Ecco il codice:Immagine lambda di AWS danneggiata

https://github.com/handonam/AWS-Resizer/blob/493ff10c317e7150d1ac040f54065083963a9c67/createThumbnails.js

si può vedere la più grande 512px file di upscaled (la ridimensionata) insieme con l'originale (200px)

Resizing to 512px

E un altro ridimensionamento di 120px Resizing to 120px

Il mio consumo di lambda sembra in gran parte per la maggior parte. È impostato sulla stessa regione con 768 MB di memoria e 20 secondi di timeout. Gli script eseguono circa 2 secondi usando 90/768mb per immagini di piccole dimensioni (come 500px di larghezza) o 14 secondi a 648/768mb per immagini molto più grandi, come ad esempio 2000px di larghezza. Ma anche per una piccola immagine, il resize muore su di me. Se abbandono i filestreams e scrivo solo nel buffer (proprio come lo aws example), l'elaborazione delle immagini finirà con un buffer buffer, e lambda userà troppe risorse.

Qualsiasi consiglio è apprezzato!

+0

Mentre ammetto che non sono abile in quello che stai facendo qui, noto che a un certo punto si chiama async.waterfall [.. ... .. function transform (next) .... .. . ... .. .. Vedendo l'evidenziazione del colore in tutta la sezione, non sono sicuro che questo bit del codice funzioni come previsto. – Uvar

+0

@Uvar puoi spiegare cosa intendi per evidenziazione del colore? – Handonam

risposta

0

Qual è la possibilità che il codice non sia protetto da thread? cioè, alcune corse simultanee della sceneggiatura si scontrano? Il file danneggiato che mostri sembra avere dimensioni errate.

+0

Sto solo eseguendo lo script una volta per immagine, dove sto caricando un'immagine uno alla volta. – Handonam