Wie kann ich der Installation von GraphicsMagick oder ImageMagick auf AWS Lambda?

Ich bin mit der gm - Paket für Node.js zusammen mit dem Standard-ImageMagick-installation, die auf AWS Lambda.

const gm = require('gm').subClass({ imageMagick: true });

Aus irgendeinem Grund, das resize-Funktionalität scheitert für bestimmte Bilder.

Ich habe eine EC2-Instanz mit dem Amazon Linux AMI (ami-hvm-2016.03.3.x86_64-gp2).
Ich installierte die (alte) 6.x-version von ImageMagick verfügbar ist yum. Wenn ich mein Skript mit, die Installation auf der EC2-Instanz, es reproduziert die Fehler sehe ich, wenn der code läuft auf Lambda-Bestätigung ist etwas, das mit dieser version von IM, das den Fehler verursacht.

Wenn ich installieren, GraphicsMagick mit sudo yum install GraphicsMagick. Dies ermöglicht mein Skript zum ausführen der Größe ohne Fehler.

const gm = require('gm').subClass({ imageMagick: false });

Allerdings bin ich mir nicht sicher, wie Sie Sie zu bündeln, diese in meinem bereitstellen, mit serverlose. Wenn ich GraphicsMagick installieren in den gleichen Ordner wie das Skript mit sudo yum --installroot=/var/task install GraphicsMagick, und führen Sie das Skript mithilfe dieses require-Anweisung statt:

const gm = require('gm').subClass({ imageMagick: false, appPath: './usr/bin/' });

Die Größe der Arbeit, wenn ich mein Skript auf der EC2-Instanz. Aber wenn ich für die Bereitstellung serverlose, und das Skript läuft in Lambda, die ausführbare Datei scheint kaputt zu sein. gm schlägt mit den folgenden Fehler bei einem Aufruf gm(buffer).size(/*...*/).

could not get the image size: ERR:
{"code":"EPIPE","errno":"EPIPE","syscall":"write"}

Wie kann ich erstellen Sie eine version von ImageMagick oder GraphicsMagick, die bereitgestellt werden kann, mit serverlose?

InformationsquelleAutor wprl | 2017-06-23
Schreibe einen Kommentar