aws工作层应用程序版本

时间:2014-06-03 13:52:59

标签: ruby-on-rails-3 elastic-beanstalk

我在Web层上的AWS弹性beanstalk上运行了一个Rails应用程序。我想向用户发送电子邮件通知,因此我使用sqs将消息发送到队列:

sqs = AWS::SQS.new
sqs.queues.named("messaging_queue").send_message("HELLO") 

然后我想使用工作层实例将这些消息从队列中删除。

我的问题是,当我从控制台创建工作层实例时,它会向我的Web层请求默认为最新部署版本的应用程序版本。我不想将我的整个Web应用程序上传到工作人员,只需要负责执行电子邮件的代码。

最好的方法是什么?我可以上传一个zip,但我想使用git

1 个答案:

答案 0 :(得分:0)

您是否可以重构负责将电子邮件发送到单独库中的代码?这样,您就可以创建一个新的Web应用程序,它只包含库中的电子邮件功能并在工作层环境中运行。工作器守护程序将消息发布到您的新工作层应用程序,然后该应用程序将发送电子邮件。这样,您就不必将整个代码库部署到工作层环境。

您可以使用git和eb来实现此目的。您的工作层应用程序版本和Web应用程序版本可以在不同的分支机构中进行管理,或者在您的情况下,将它们保存在不同的git存储库中似乎更好。如果你想使用分支,那么你可以阅读eb命令“eb branch”,它可能很有用。

了解有关eb here的更多信息。