mTurk send_test_event_notification 不适用于 SQS 传输
mTurk send_test_event_notification does not work for SQS transport
当我使用电子邮件作为传输方式时,一切正常。一旦我选择 SQS,它就会失败,即使队列本身可以正常工作。
下面的代码会引发以下错误:
File "/Users/chapkovski/mynewotree/lib/python3.5/site-packages/botocore/client.py", line 310, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/chapkovski/mynewotree/lib/python3.5/site-packages/botocore/client.py", line 599, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InternalFailure) when calling the SendTestEventNotification operation (reached max retries: 4):
代码如下:
endpoint_url = 'https://mturk-requester-sandbox.us-east-1.amazonaws.com'
client = boto3.client('mturk',
endpoint_url=endpoint_url
)
sqs = boto3.resource('sqs')
queue = sqs.get_queue_by_name(QueueName='whatever2')
response = client.send_test_event_notification(
Notification={
'Destination': queue.url,
'Transport': 'SQS',
'Version': '2006-05-05',
'EventTypes': [
'Ping', 'AssignmentReturned'
]
},
TestEventType='AssignmentReturned'
)
您收到此错误的原因很可能是因为您没有在 SQS 队列中配置权限。您需要添加权限以允许 Mechanical Turk 系统帐户在您的队列上调用 sqs:SendMessage
操作。 Follow the steps listed here on how to do so.
完成后,您的权限应如下所示:
然后再次尝试该代码,您应该会收到 200 响应。
当我使用电子邮件作为传输方式时,一切正常。一旦我选择 SQS,它就会失败,即使队列本身可以正常工作。
下面的代码会引发以下错误:
File "/Users/chapkovski/mynewotree/lib/python3.5/site-packages/botocore/client.py", line 310, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Users/chapkovski/mynewotree/lib/python3.5/site-packages/botocore/client.py", line 599, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InternalFailure) when calling the SendTestEventNotification operation (reached max retries: 4):
代码如下:
endpoint_url = 'https://mturk-requester-sandbox.us-east-1.amazonaws.com'
client = boto3.client('mturk',
endpoint_url=endpoint_url
)
sqs = boto3.resource('sqs')
queue = sqs.get_queue_by_name(QueueName='whatever2')
response = client.send_test_event_notification(
Notification={
'Destination': queue.url,
'Transport': 'SQS',
'Version': '2006-05-05',
'EventTypes': [
'Ping', 'AssignmentReturned'
]
},
TestEventType='AssignmentReturned'
)
您收到此错误的原因很可能是因为您没有在 SQS 队列中配置权限。您需要添加权限以允许 Mechanical Turk 系统帐户在您的队列上调用 sqs:SendMessage
操作。 Follow the steps listed here on how to do so.
完成后,您的权限应如下所示:
然后再次尝试该代码,您应该会收到 200 响应。