【问题标题】:Aws::SQS::Errors::NonExistentQueue (The specified queue default does not exist.):Aws::SQS::Errors::NonExistentQueue(指定的队列默认不存在。):
【发布时间】:2018-09-17 15:37:23
【问题描述】:

我在 AWS 和 SQS 上创建了一个名为 queue123 的工作机器,并且我使用 shoryuken gem 作为适配器 ( config.active_job.queue_adapter = :shoryuken at application.rb )。

class EmailVerificationMailerJob < ActiveJob::Base
  queue_as 'queue123'

  def perform(user)
    EmailVerificationMailer.send_email_otp(user)
  end
end

当请求命中工作时,它会显示

Aws::SQS::Errors::NonExistentQueue(指定的队列默认不存在。):错误。

我在这里缺少什么。

【问题讨论】:

  • 这里提到的队列是否存在于 SQS 中?
  • 是的。这是 SQS 中的一个队列退出
  • @Aarthi 您是否将请求发送到正确的 AWS 区域?每个区域的 SQS 部署独立于其他区域。如果(例如)您在 us-east-2 中创建了一个队列并且此代码针对 us-east-1 运行,则 us-east-1 将正确报告该队列不存在。
  • 你是在请求中使用队列name,还是队列url?区别很重要。

标签: ruby-on-rails amazon-web-services amazon-sqs


【解决方案1】:

您可能错过了从AWS Console 向队列授予预期权限的权限。

尝试以下步骤 -

  1. 登录您的AWS Console
  2. right-click 在您的队列中。
  3. 转到Add a Permission
  4. Principal 部分选择必要的帐户。
  5. 选择您要授予上述用户所需的权限。
  6. Add permission 保存。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 2015-03-20
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    相关资源
    最近更新 更多