【问题标题】:Is it possible to run java command line app from python in AWS EC2?是否可以在 AWS EC2 中从 python 运行 java 命令行应用程序?
【发布时间】:2015-04-11 09:20:05
【问题描述】:

我正在研究一些机器学习,用于在 python 中进行化学建模。我需要运行一个 java 应用程序(从命令行通过 python subprocess.call)和一个 python 网络服务器。这在 AWS EC2 上可行吗?

我目前在我的 Mac 上运行此设置,但我很好奇如何在 aws 上进行设置。

提前致谢!

【问题讨论】:

  • 你的意思是python网络服务器需要从命令行调用Java应用程序并捕获它的结果还是什么?
  • 我基本上想从 django 调用 subprocess.call 方法来运行一个 java 应用程序,它将写入一个 txt 文件作为输出。然后我将使用另一种 python 方法进一步处理该 txt 文件。谢谢。

标签: java python amazon-web-services amazon-ec2


【解决方案1】:

由于您只是对 Java 应用程序进行命令行调用,因此阻力最小的路径就是使用 ssh 从另一台服务器进行调用。您可以轻松地将您一直在使用的命令与subprocess.call 一起使用以使用 ssh——或多或少,subprocess.call(['ssh', '{user}@{server}', command])(尽管找出引号很有趣)。顺便说一句,我通常发现使用 '-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' 可以在我的环境中稳定脚本化 SSH 调用。

更多涉及的事情是设置环境以正确运行您需要的组件。您需要设置 ssh 配置,以便您的 django 应用程序可以 ssh 并设置 - 可能使用私钥验证。然后,您需要确保您的 EC2 安全组已设置为允许 ssh 访问端口 22 上的 java 服务器,sshd 默认侦听该端口。

这一切都不是那么麻烦,但无论如何,将 Java 服务包装在 Django 应用程序可以访问的 HTTP 服务器中可能会更稳定。无论如何,希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    相关资源
    最近更新 更多