我在安装和运行Amazon Mechanical Turk" Hello World"时遇到问题。用于随mturk gem提供的Ruby应用程序。我一直收到错误消息:AWS.MechanicalTurk.MustRegister
。
以下是我尝试安装和运行应用程序失败的步骤:
我为应用程序创建了一个项目:
$ mkdir -p ~/proj/mturk
$ cd ~/proj/mturk
$ rvm --ruby-version use ruby-2.2@mturk --create
$ bundle init
$ echo 'gem "mturk"' >> Gemfile
$ bundle install
$ cp ~/.rvm/gems/ruby-2.2.0@mturk/gems/mturk-1.9.0/samples/helloworld/* .
从这里开始,我按照http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMechanicalTurkGettingStartedGuide/SetUp.html
上的说明进行操作我尝试过两次,一次使用root凭据,一次使用IAM凭据,但两次都没有成功。 (出于安全考虑,我倾向于使用IAM凭证。)
在应用程序中生成并安装root凭据:
我浏览了我的浏览器:http://aws.amazon.com/security-credentials 我按下"继续安全证书"在页面上并下载root用户帐户的密钥文件。我尝试使用root用户的凭据,但没有成功:
$ echo 'AWSAccessKeyId: [redacted]' >> mturk.yml
$ echo 'AWSAccessKey: [redacted]' >> mturk.yml
$ ./MTurkHelloWorld.rb
~/.rvm/gems/ruby-2.2.0@mturk/gems/mturk-1.9.0/lib/amazon/webservices/mturk/mechanical_turk_error_handler.rb:143:in `block in validateResponse': AWS.MechanicalTurk.MustRegister (Amazon::WebServices::Util::ValidationException)
我在使用IAM时也收到了相同的AWS.MechanicalTurk.MustRegister错误消息。要在应用程序中生成和安装IAM凭据:
在我的网络浏览器中,我导航到IAM控制台。 我点击了政策'选项,并选择了AmazonMechanicalTurkFullAccess。' 我选择了' Attach'来自政策行动'下拉菜单,选择了一个名为" Turk"我之前创建的,并按下了附加政策'完全土耳其人访问的按钮。
接下来,我点击了'用户'选项卡,按下'创建访问密钥'对于"土耳其人"用户,并按下了“下载访问密钥”'按钮。
我尝试使用这些密钥,但没有成功:
$ echo 'AWSAccessKeyId: [redacted]' >> mturk.yml
$ echo 'AWSAccessKey: [redacted]' >> mturk.yml
$ ./MTurkHelloWorld.rb
~/.rvm/gems/ruby-2.2.0@mturk/gems/mturk-1.9.0/lib/amazon/webservices/mturk/mechanical_turk_error_handler.rb:143:in `block in validateResponse': AWS.MechanicalTurk.MustRegister (Amazon::WebServices::Util::ValidationException)
这与以前的错误相同。