2017-09-29 4 views
1

Lorsque j'utilise le courrier électronique comme moyen de transport, tout fonctionne parfaitement. Dès que je choisis SQS il échoue, même si la file elle-même fonctionne correctement. Le code augmente ci-dessous l'erreur suivante: 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): mTurk send_test_event_notification ne fonctionne pas pour le transport SQS

et voici le code:

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' 
) 

Répondre

1

La raison pour laquelle vous obtenez cette erreur est très probablement parce que vous n'avez pas configuré les autorisations dans votre File d'attente SQS. Vous devez ajouter une autorisation pour autoriser un compte système Mechanical Turk à appeler l'action sqs:SendMessage dans votre file d'attente. Follow the steps listed here on how to do so.

Une fois que vous faites cela, vos autorisations devraient ressembler à ceci: enter image description here

Ensuite, essayez à nouveau le code et vous devriez obtenir une réponse 200.