![](/img/trans.png)
[英]Error: Cannot find module 'aws-sdk' in NodeJS AWS Lambda Function
[英]AWS-SDK in nodejs Lambda function cannot find endpoint-cache module
我一直在重構我們的一些AWS lambda函數,並且在這個最新版本中,我收到以下錯誤:
"Payload": "{\"errorMessage\":\"Cannot find module '../vendor/endpoint-cache'\",\"errorType\":\"Error\",\"stackTrace\":[\"Function.Module._load (module.js:474:25)\",\"Module.require (module.js:596:17)\",\"require (internal/module.js:11:18)\",\"Object.<anonymous> (/var/task/node_modules/aws-sdk/lib/core.js:76:18)\",\"Module._compile (module.js:652:30)\",\"Object.Module._extensions..js (module.js:663:10)\",\"Module.load (module.js:565:32)\",\"tryModuleLoad (module.js:505:12)\",\"Function.Module._load (module.js:497:3)\"]}"
該模塊位於aws-sdk節點模塊的vendor文件夾中。 我檢查了部署工件以確保該文件夾存在,並且我已嘗試降級到之前使用的舊版aws-sdk。
package.json中的依賴項:
"dependencies": {
"aws-sdk": "^2.59.0",
"moment": "^2.22.2",
"underscore": "^1.8.3"
},
構建服務器運行npm-install然后運行
$path = Get-Location
$thisProject = "$($path)\pathToProject\*"
Compress-Archive -Path $thisProject -DestinationPath thisProject.zip
被困在這一段時間,所以任何幫助都非常感謝。
幾個月前我遇到了這個問題。 結果我需要確保包鎖文件包含在項目中並設置了aws-sdk版本
我昨天遇到了這個問題,我通過刪除package.json
的aws-sdk
並刪除+重新安裝我的node_modules
文件夾解決了這個問題。 希望這能解決你的問題。
我認為aws-sdk
默認已經包含在內。
在Lambda函數中指定所需SDK的推薦方法是使用所需版本創建lambda圖層。 請參見: https : //aws.amazon.com/blogs/compute/working-with-aws-lambda-and-lambda-layers-in-aws-sam/
我實際上遇到了同樣的問題。 在我的情況下,原因是在Windows上運行的Compress-Archive
功能。 如果我使用Compress-Archive
打包lambda,那么Lambda調用將失敗並顯示上面的錯誤。 但是,如果我解壓縮.zip
並使用常規Windows“發送到壓縮目錄”打包 - 一切正常。 我在PowerShell github空間中發現了一些類似的問題 ,這讓我覺得這是一個常見的問題。
PowerShell Core的最新版本之一修復了這個問題(不確定經典的PowerShell)。 我不確定解決這個問題的確切版本,但它在v.6.1中存在,並且在v.6.2.2中它已經消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.