当前位置: 首页 > 知识库问答 >
问题:

AWS Beanstalk工作程序无法启动SQS守护程序AWS sqsd

隆钊
2023-03-14

我的目标是使用AWS Beanstalk,创建应用程序环境类型“Worker”,它将处理重载任务,这个Worker基于我们的Rails应用程序。我创建了AWS Beanstalk Worker Environment:Environment tier:Ruby,1.9.3,基于64位Amazon Linux环境类型:single instance(我尝试了运行Ruby 2.0(Puma)的64位Amazon Linux 2014.03 v1.0.3,但结果相同)

在解决了GEMS和数据库连接的所有问题后,我坚持启动“aws sqs”队列客户端。它应该侦听队列并对工作应用程序执行HTTP请求。我已经为这个Worker实例的ENV变量提供了AWS_ACCESS_KEY_ID和AWS_SECRET_KEY:

$ export | grep AWS
declare -x AWS_ACCESS_KEY_ID="AK...........Q"
declare -x AWS_AUTO_SCALING_HOME="/opt/aws/apitools/as"
declare -x AWS_CLOUDWATCH_HOME="/opt/aws/apitools/mon"
declare -x AWS_ELB_HOME="/opt/aws/apitools/elb"
declare -x AWS_IAM_HOME="/opt/aws/apitools/iam"
declare -x AWS_PATH="/opt/aws"
declare -x AWS_RDS_HOME="/opt/aws/apitools/rds"
declare -x AWS_SECRET_KEY="Hp.....fI"
declare -x EB_CONFIG_SYSTEM_AWSEBAGENTID=""
declare -x EB_CONFIG_SYSTEM_AWSEBREFERRERID=""

以下是日志输出:

2014-05-19T13:58:59Z init: initializing aws-sqsd 1.0 (2013-12-23)
2014-05-19T13:58:59Z start: polling https://sqs.us-east-1.amazonaws.com/201266939336/awseb-e-dq8cqaud2z-stack-AWSEBWorkerQueue-18836XBBHNDUD
2014-05-19T13:58:59Z fatal: AWS::Errors::MissingCredentialsError: 
Missing Credentials.

Unable to find AWS credentials.  You can configure your AWS credentials
a few different ways:

* Call AWS.config with :access_key_id and :secret_access_key

<<<

* On EC2 you can run instances with an IAM instance profile and credentials
  will be auto loaded from the instance metadata service on those
  instances.

* Call AWS.config with :credential_provider.  A credential provider should
  either include AWS::Core::CredentialProviders::Provider or respond to
  the same public methods.

= Ruby on Rails

In a Ruby on Rails application you may also specify your credentials in
the following ways:

* Via a config initializer script using any of the methods mentioned above
  (e.g. RAILS_ROOT/config/initializers/aws-sdk.rb).

* Via a yaml configuration file located at RAILS_ROOT/config/aws.yml.
  This file should be formated like the default RAILS_ROOT/config/database.yml
  file.

我的Rails应用程序中还有config/initializers/aws-sdk.rb,其中包含以下内容:

AWS.config(
    access_key_id: ENV["AWS_ACCESS_KEY_ID"],
    secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"])

守护进程aws sqs根本没有启动。我是否有机会以其他方式配置aws sqs?

共有1个答案

欧阳晗日
2023-03-14

也许您正在为弹性豆茎使用的实例配置文件没有工作环境所需的权限。

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.iam.roles.aeb.html#AWSHowTo.iam.policies.actions.worker

您能否确保您的IAM实例配置文件具有上面链接中列出的所有权限?(复制如下以供参考)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "QueueAccess",
      "Action": [
        "sqs:ChangeMessageVisibility",
        "sqs:DeleteMessage",
        "sqs:ReceiveMessage"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Sid": "MetricsAccess",
      "Action": [
        "cloudwatch:PutMetricData"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}               
 类似资料:
  • 我在我的ubuntu 12.04中安装了Hadoop 2.6.0。当我启动/停止dfs-sh守护程序时,它显示以下错误。请帮助我克服这个问题 无需停止namenode本地主机:停止datanode停止次要namenodes[0.0.0.0] 0.0.0.0:停止次要namenode 2004年5月16日10:40:03警告util。NativeCodeLoader:无法为您的平台加载本机hadoo

  • 首先,我在删除后下载了lquidbounce的源代码。gradle和我发布了代码信息,希望你们能帮我

  • 问题内容: 在Ubuntu中将Go程序作为守护程序启动的正确方法是什么?然后,我将使用Monit对其进行监视。我应该做这样的事情吗: 我应该考虑Go特定的事情吗? 问题答案: 您应该为您的程序()构建可执行文件,然后为upstart编写脚本,它将为您的守护程序运行程序,或者使用诸如daemonize之类的外部工具。我更喜欢后一种解决方案,因为它不依赖于系统相关的新贵。通过守护进程,您可以像 这将为

  • 当我试图在Android Studio中导入一个gradle项目时,我遇到了以下错误。 这是我看到的输出: 我已经关闭了在SO中的解决方案中提到的防病毒软件。但是似乎什么都不起作用。

  • 错误:无法启动守护进程。此问题可能是由不正确的守护程序配置引起的。例如,使用无法识别的 jvm 选项。请参阅守护程序的用户指南章节,http://gradle.org/docs/1.12/userguide/gradle_daemon.html VM初始化期间发生错误无法为对象堆保留足够的空间无法创建Java虚拟机。

  • Android版本:1.2.2 它显示错误:无法启动守护进程。此问题可能是由于守护进程配置不正确造成的。例如,使用了无法识别的jvm选项。请参阅《用户指南》中关于守护进程的一章,网址为:http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html VM 初始化期间发生错误 无法为对象堆保留足够的空间 错误: 无法创建 Java 虚拟机。错误:发