1

我在AWS Elastic Beanstalk上有一個rails應用程序。我使用delayed_job處理後臺任務。我建立了一個eb工作者實例來處理這個問題。它可以工作,但在儀表板中顯示爲失敗(紅色)。我相信這是因爲以下錯誤的,我得到每隔幾秒鐘:如何禁用彈性beanstalk上的sqs

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?理想情況下,它永遠不會安裝在第一位。如果我無法修改安裝配置,是否有辦法防止此錯誤影響我的環境狀態?

+0

即使在工作環境中,您也將擁有nginx。你能詳細解釋你的用例嗎? – 2014-10-07 15:38:01

+0

當然,謝謝 - 我有一個使用delayed_job處理後臺任務的Rails應用程序。所以我的工作人員只需要運行rails(用於paperclip和delayed_job),以訪問應用程序數據庫和Internet連接。工作人員需要從s3下載.wav文件,使用ffmpeg處理它們,然後將它們上傳回s3。所以我不需要回應http請求。 – laertiades 2014-10-07 17:56:51

+0

也許,我真正需要的是Ruby。但是我一直無法刪除rails並保持我的gem快樂,所以現在我想讓工作人員使用Rails運行,並且稍後可能會減少它。我非常感謝您能夠提供的任何幫助 – laertiades 2014-10-07 18:15:56

回答

1

您正在啓動工作程序層環境。這就是爲什麼SQS正在爲您的環境而創建的原因。如果您不想啓動工作環境,則應啓動「Web服務器」環境。 Elastic Beanstalk中的Worker Tier環境允許您定期輪詢來自SQS隊列的消息。

瞭解更多有關工作層環境在這裏: http://aws.amazon.com/blogs/aws/background-task-handling-for-aws-elastic-beanstalk/

瞭解更多關於環境層級的位置: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html

如果你想使用一個工人層環境啓用了SQS你可以擺脫存取遭拒的例外,通過訪問IAM實例配置文件來訪問SQS,如下所述: https://stackoverflow.com/a/24880344/161628

+0

謝謝先生。我使用IAM策略啓用了隊列。我認爲如果我使用諸如Nginx的網絡服務器,會有更多不必要的服務。 – laertiades 2014-10-07 13:41:55

+0

即使有工作環境,你也會有nginx。你能詳細解釋你的用例嗎? – 2014-10-07 15:39:12

相關問題