首页 > 解决方案 > 在 Alexa 技能 lambda 函数中,我可以在调用某个意图时调用 shell 脚本吗?

问题描述

我有一个远程 postfix 邮件服务器,当用户询问“阅读我的信息”时,我想为用户返回一些数据。为此,在我的 getResponse() 函数中,我调用了一个函数 getInfo(),我将把它的返回值传递给 Speech_output。在这个函数中,我想使用 ssh 访问远程机器并收集数据。

目前,我在同一目录中有一个 shell 脚本,可以从远程服务器收集数据,称为retrieveInfo.sh,它将数据写入文件调用readingFile。我在 getInfo() 函数中编写了以下代码:

subprocess.call(['./retrieveInfo.sh'])
f=open("./readingFile", "r")
retVal = f.read()
return retVal

所有这些代码都有效,除了子流程调用。但是,当我运行此代码时,包括另一个设置中的子进程调用(不是 Alexa 测试,只是我自己的调试),一切正常。这与打包部署有关吗?我试图上传一个安装了子进程的 zip 文件,但这似乎也不起作用。我不确定这是环境问题还是其他问题?

它基本上归结为以下几点:当一个意图被调用时,我怎样才能让它运行另一个程序来为我收集一些数据?或者有没有办法让我通过 lambda python 函数本身访问那台远程机器?我尝试使用 paramiko 进行包部署,但这也不起作用。

标签: pythonsshaws-lambdaremote-accessalexa

解决方案


推荐阅读