使用MTurk Ruby gem

时间:2015-12-13 20:10:06

标签: ruby amazon-web-services mechanicalturk

我在安装和运行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凭据

在应用程序中生成并安装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

我在使用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)

这与以前的错误相同。

1 个答案:

答案 0 :(得分:3)

"沙盒中的土耳其语注册独立于生产系统,因此您需要登录https://requestersandbox.mturk.com/并完成注册过程。"

https://forums.aws.amazon.com/thread.jspa?threadID=123738