【发布时间】:2011-08-11 16:05:14
【问题描述】:
我正在 AWS 上构建一个测试应用程序。我有一台拥有该应用程序的“主”机器。有时,我希望能够将处理任务卸载到一些按需从属机器上。假设一个实例化的从站,只需要最少的软件(不包括我的主应用程序),我如何将 Python 代码的功能单元“发送”到一个或多个从站执行?
我知道并接受这种架构可能由于多种原因可能不是最优的 - 我知道如果我可以在启动时在我的实例上预安装相关代码会更简单。但是让我们假设我们有一个硬约束,即从属实例不能在操作系统和一些基本库之外预加载 - 例如,如果我想在另一台机器上喷射一些生成的代码怎么办?
编辑:StackOverflow 是一个非常糟糕的资源!感谢大家的回复。惊人的。给我几天时间,我会回来报告的。
【问题讨论】:
-
我不同意这属于 ServerFault。这是一个真正的编程/设计问题。
-
你的 Python 代码的 sn-p 将在什么 context 中执行?你说你的主应用程序不会在远程机器上,但你没有说 is 会在那里。 sn-p 需要的上下文越多,您需要发送到远程的代码就越多。
-
我实际上是在尝试了解如何将代码“发送和执行”到远程(......在探索 AWS 的可能性时仍然是菜鸟)。但是一个微不足道的,有效的(在我的情况下)示例是:想象主服务器上的一个函数 foo() - 它拥有 foo() 的源 - 我如何将 foo() 发送到远程(......假设任何foo() 所依赖的库已经安装在遥控器上。
-
您可以通过多种方式发送代码。默认情况下,AWS 防火墙规则只打开端口 22,所以通常人们会使用 SSH(例如:PyPI 上的 paramiko 库)来复制文件。或者,您可以只发送描述函数
foo的字符串,然后使用 compile 和 exec 内置函数将该字符串转换为字节码并在远程机器上执行。当然,我仍然认为最好的解决方案是放弃不能在从机上安装代码的要求。
标签: python amazon-web-services