IOS Game Center認証トークンを検証するために必要な「ref」( https://www.npmjs.com/package/ref )を含むZipをAWS Lambdaにアップロードしました。 ( サードパーティのnode.jsサーバーからGame Centerユーザーを認証する方法 )。
残念ながら、それを呼び出すと「無効なELFヘッダー」エラーが発生します。
{
"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)"
]
}
これは、ヨセミテを実行している64ビットMacbook Proで開発されており、コードをローカルで実行しても問題ありません。 「無効なELFヘッダー」を探し回っては、関連する結果を知るための情報がほとんど得られなかったので、ここからどこに進むべきか本当にわかりません。 node.jsエリアでこれを尋ねる方がいいでしょうか、それともプラットフォームに問題がある可能性があるため、これは関連するエリアですか?
これは、あるアーキテクチャでビルドしてから、同じアーキテクチャのアドオンを別のアーキテクチャ(または場合によってはプラットフォーム)で使用しようとすると発生します。
このページ によると、コンパイルされたアドオンをLambdaサービスで使用するには、EC2のAmazon Linuxイメージに対してアドオンをコンパイルする必要がある場合があります。
これはあなたの質問にはまったく当てはまりませんが、AWS Elastic Beanstalkを使用しているときに誰かがこれに出くわした場合は、node_modules/
ディレクトリを他のすべてと一緒に使用するため、ファイルを無視するように強制する必要があります。
.ebignore
node_modules/