SSH 到 ec2 实例并执行
SSH to ec2 instance and execute
我有一个需要响应的数据管道应用程序。完成后,我通过 ssh 连接到 ec-2 实例并执行脚本。数据管道完成后对该框执行 ssh 的最佳方法是什么?我应该使用 lambda 函数并让它监听数据线完成并通过 ssh 连接到该框并执行脚本吗?我不能把剧本从那个盒子里拿出来。
这里有几个我能想到的解决方案。
数据管道完成后,在 S3 上写入一个零字节文件以表示其结束。如您所述,S3 put 可以发出 Lambda 函数信号。但我不知道如何重新执行 shell 脚本。
另一种方法是在 ec2-box 上安装 taskrunner 并使其参与您的数据管道。该 shell 脚本可能是管道中的 'activity'。这是如何做到的 http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-how-task-runner-user-managed.html
这种方法不需要超出您当前的数据管道控制流程,如果 shell 脚本因任何原因失败,管道将无法为您提供集成视图。
这是我最后做的。我编写了一个 lambda 应用程序,它从数据管道读取 SNS 消息,从加密的 S3 存储桶中提取 PEM,然后通过 sshed 进入该框,然后执行 shell 脚本。
我有一个需要响应的数据管道应用程序。完成后,我通过 ssh 连接到 ec-2 实例并执行脚本。数据管道完成后对该框执行 ssh 的最佳方法是什么?我应该使用 lambda 函数并让它监听数据线完成并通过 ssh 连接到该框并执行脚本吗?我不能把剧本从那个盒子里拿出来。
这里有几个我能想到的解决方案。
数据管道完成后,在 S3 上写入一个零字节文件以表示其结束。如您所述,S3 put 可以发出 Lambda 函数信号。但我不知道如何重新执行 shell 脚本。
另一种方法是在 ec2-box 上安装 taskrunner 并使其参与您的数据管道。该 shell 脚本可能是管道中的 'activity'。这是如何做到的 http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-how-task-runner-user-managed.html 这种方法不需要超出您当前的数据管道控制流程,如果 shell 脚本因任何原因失败,管道将无法为您提供集成视图。
这是我最后做的。我编写了一个 lambda 应用程序,它从数据管道读取 SNS 消息,从加密的 S3 存储桶中提取 PEM,然后通过 sshed 进入该框,然后执行 shell 脚本。