将Alexa技能部署到具有“alexa-app”依赖性的AWS Lambda
我写了一个简单的Alexa技能。它使用“alexa-app”作为依赖项。将Alexa技能部署到具有“alexa-app”依赖性的AWS Lambda
var alexa = require('alexa-app');
当我保存和测试我的技术,我得到如下回应
{
"errorMessage": "Cannot find module 'alexa-app'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:276:25)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)",
"Object.<anonymous> (/var/task/index.js:4:13)",
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)"
]
}
是否有可能利用这个“alexa的应用程序内的”依赖没有烘烤成一个zip文件。为了加快开发速度,我宁愿使用在线Lambda代码编辑器中的一个文件。这可能吗?
不,您将需要将其包含在任何其他文件的zip中。然而,这确实不难。您可以使用AWS CLI来简化此操作。
这里是我在我的Mac上使用了这样一个bash脚本:
# Create archive if it doesn't already exist
# Generally not needed, and just a refresh is performed
if [ ! -f ./Archive.zip ];
then
echo "Creating Lambda.zip"
else
echo "Updating existing Lambda.zip"
fi
# Update and upload new archive
zip -u -r Lambda.zip index.js src node_modules
echo "Uploading Lambda.zip to AWS Lambda";
aws lambda update-function-code --function-name ronsSkill --zip-file fileb://Lambda.zip
在上面的脚本,它与在./src所有文件,并一起打包了一个index.js文件./node_modules目录。它将它们上传到我的'ronsSkill'Lambda函数中。 我也使用alexa-app,它通过npm包含在node_modules目录中。
此回复是在亚马逊宣布ASK CLI之前做出的。它仍然有效,但问题cli值得检查,并可以在没有上述脚本的情况下执行相同的操作。请参阅https://developer.amazon.com/docs/smapi/quick-start-alexa-skills-kit-command-line-interface.html –
不,烘烤它。 –