AWS Cloud9 Lambda安装node.js模块

时间:2018-01-23 23:05:36

标签: node.js amazon-web-services promise aws-lambda aws-cloud9

我在尝试在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

1 个答案:

答案 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项目文件夹来测试这个并且它工作了!