2015-05-01 3 views
17

Ich habe gerade eine Zip-Datei nach AWS Lambda hochgeladen, die das "ref" (https://www.npmjs.com/package/ref) enthält, das zur Validierung eines iOS Game Center-Authentifizierungstokens benötigt wird (How to authenticate Game Center User from 3rd party node.js server)."ungültiger ELF-Header" bei Verwendung des Moduls "ref" von Nodejs auf AWS Lambda

Leider Aufruf in der „ungültig ELF-Header“ Fehler führt,

{ 
    "errorMessage": "/var/task/node_modules/ref/build/Release/binding.node: invalid ELF header", 
    "errorType": "Error", 
    "stackTrace": [ 
    "Module.load (module.js:356:32)", 
    "Function.Module._load (module.js:312:12)", 
    "Module.require (module.js:364:17)", 
    "require (module.js:380:17)", 
    "bindings (/var/task/node_modules/ref/node_modules/bindings/bindings.js:76:44)", 
    "Object.<anonymous> (/var/task/node_modules/ref/lib/ref.js:5:47)", 
    "Module._compile (module.js:456:26)", 
    "Object.Module._extensions..js (module.js:474:10)", 
    "Module.load (module.js:356:32)", 
    "Function.Module._load (module.js:312:12)" 
    ] 
} 

Dies wurde auf einem 64-Bit-Macbook Pro läuft Yosemite entwickelt, die lokal kein Problem Ausführung des Codes hat. Nach "ungültigem ELF-Header" zu suchen hat wenig dazu gebracht, relevante Ergebnisse zu wissen, und ich bin mir wirklich nicht sicher, wohin ich von hier aus gehen soll. Würde ich das besser in einem node.js-Bereich fragen, oder ist das der relevante Bereich, weil es ein Problem mit der Plattform sein könnte?

+1

Knotenmodule, die nativen Code enthalten, müssen auf (oder für) der Zielplattform erstellt werden. Erstellen Sie Ihre Knotenmodule auf der Zielplattform neu. – Joe

Antwort

30

Dies passiert, wenn Sie auf einer Architektur aufbauen und dann versuchen, das gleiche gebaute Addon auf einer anderen Architektur (oder Plattform in einigen Fällen) zu verwenden.

Nach this page müssen Addons möglicherweise gegen ein Amazon Linux-Image auf EC2 kompiliert werden, damit die kompilierten Addons auf ihrem Lambda-Service verwendet werden können.

+0

Große Informationen in der Verbindung. Ich wollte nur hinzufügen, dass die zu drehende EC2-Instanz mit einem ähnlichen Namen (AMI-Name: amzn-ami-hvm-2016.03.3.x86_64-gp2) basierend auf http://docs.aws.amazon.com/lambda sein sollte /latest/dg/current-supported-versions.html. Für den Fall, dass Sie nicht wissen, welcher zu erstellen ist. – zeta

+0

passiert zu oft bei der Verwendung von VMs, so heads-up, solide Antwort. –

Verwandte Themen