【发布时间】:2014-12-01 05:37:45
【问题描述】:
我在 AWS Elastic Beanstalk 上有一个 rails 应用程序。我使用delayed_job 处理后台任务。我设置了一个 eb worker 实例来处理这个问题。它可以工作,但在仪表板中显示为失败(红色)。我相信这是因为每隔几秒钟就会出现以下错误:
error: AWS::SQS::Errors::AccessDenied: Access to the resource https://sqs.us-west-2.amazonaws.com/xxx...xxxx is denied
我尝试通过以下方式删除sqs无济于事:
services:
sysvinit:
aws-sqsd:
enabled: false
ensureRunning: false
如何停止sqs?理想情况下,它永远不会首先安装。如果我无法修改安装配置,是否有办法防止此错误影响我的环境状态?
【问题讨论】:
-
即使在工作环境下,您也将拥有 nginx。你能更详细地解释一下你的用例吗?
-
好的,谢谢 - 我有一个 Rails 应用程序,它使用 delay_job 处理后台任务。因此,我的工作人员只需要运行 rails(用于回形针和延迟作业)即可访问应用程序数据库和互联网连接。工作人员需要从 s3 下载 .wav 文件,使用 ffmpeg 处理它们,然后将它们上传回 s3。所以我不需要响应http请求。
-
或许,我真正需要的只是 Ruby。但是我一直无法移除 Rails 并让我的 gems 满意,所以现在我想让工作人员使用 Rails 运行,也许以后再把它变薄。我非常感谢您能够提供的任何帮助
-
理想情况下,我会推荐在这个用例中使用 Web 服务器环境。使用工作环境,您可以获得额外的资源,例如您不需要的 SQS 队列。还有一个在 EC2 实例上运行的后台守护程序。此守护程序轮询 SQS 队列。你不需要这些资源。我建议为您的用例使用 Web 服务器环境。
-
好的。我会接受你的建议。感谢您的宝贵时间。
标签: ruby-on-rails amazon-web-services delayed-job amazon-elastic-beanstalk amazon-sqs