繁体   English   中英

通过“ alexa-app”依赖项将Alexa技能部署到AWS Lambda

[英]Deploy Alexa skill to AWS Lambda with “alexa-app” dependency

我写了一个简单的Alexa技能。 它使用“ alexa-app”作为依赖项。

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-app”依赖项而不将其烘焙到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

在上面的脚本中,它打包了一个index.js文件以及./src和./node_modules目录中的所有文件。 它将它们上传到我的“ ronsSkill” Lambda函数。 我也使用alexa-app,它被npm包含在node_modules目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM