我在尝试在AWS Cloud9中的lambda项目中安装节点模块时遇到问题。
我运行了命令
var rp = require('request-promise');
我一直在"错误:无法找到模块'请求承诺'"。
我有以下代码。
#!/bin/bash
inputFile="/private/tmp/.swatchTempFolderList.txt"
echo '/Applications/Adobe\ Photoshop\ CC\ 2018/Presets/Color\ Books
/Applications/Adobe\ Photoshop\ CC\ 2017/Presets/Color\ Books
/Applications/Adobe\ Photoshop\ CC\ 2015.5/Presets/Color\ Books
/Applications/Adobe\ Photoshop\ CC\ 2015/Presets/Color\ Books
/Applications/Adobe\ Photoshop\ CC\ 2014/Presets/Color\ Books
/Applications/Adobe\ Photoshop\ CC/Presets/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2018/Presets.localized/en_US/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2017/Presets.localized/en_US/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2015.3/Presets.localized/en_US/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2015/Presets.localized/en_US/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2014/Presets.localized/en_US/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC/Presets.localized/en_US/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2018/Presets.localized/en_GB/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2017/Presets.localized/en_GB/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2015.3/Presets.localized/en_GB/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2015/Presets.localized/en_GB/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC\ 2014/Presets.localized/en_GB/Swatches/Color\ Books
/Applications/Adobe\ Illustrator\ CC/Presets.localized/en_GB/Swatches/Color\ Books
/Applications/Adobe\ InDesign\ CC\ 2018/Presets/Swatch\ Libraries
/Applications/Adobe\ InDesign\ CC\ 2017/Presets/Swatch\ Libraries
/Applications/Adobe\ InDesign\ CC\ 2015/Presets/Swatch\ Libraries
/Applications/Adobe\ InDesign\ CC\ 2014/Presets/Swatch\ Libraries
/Applications/Adobe\ InDesign\ CC/Presets/Swatch\ Libraries' > "$inputFile"
while read f; do
if [ -e "$f" ]; then
echo "Setting 777 for $f..."
chmod 777 "$f"
else
echo "Skipping, since $f does not exist..."
fi
done < "$inputFile"
exit 0
它的结构如下
-Lambda Env
- getMergedProducts
- node_modules
答案 0 :(得分:0)
这不是Lambda的使用方式。 我与AWS解决方案架构师进行了交谈,他为我做了一些事情。
请记住,每个功能都是独立的,因此需要自行打包。每个函数都有自己的package.json和node_modules,因为每个函数都在自己的容器中运行。
您的方法假设您的所有功能都在同一个基础架构上运行,而在无服务器环境中并非如此。全局模块(超出Lambda运行时中打包的模块)不存在。
请务必阅读: https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html和 https://docs.aws.amazon.com/lambda/latest/dg/nodejs-create-deployment-pkg.html
我通过将node_modules文件夹从环境文件夹移动到lambda项目文件夹来测试这个并且它工作了!