Traceback (la dernière sortie de la console):
File "batchpy.py", line 61, in <module>
obj.batch_w1()
File "batchpy.py", line 49, in batch_w1
batch.put_item(data=item)
File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/table.py", line 1641, in __exit__
self.resend_unprocessed()
File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/table.py", line 1718, in resend_unprocessed
resp = self.table.connection.batch_write_item(batch_data)
File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/layer1.py", line 420, in batch_write_item
body=json.dumps(params))
File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/layer1.py", line 2842, in make_request
retry_handler=self._retry_handler)
File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 954, in _mexe
status = retry_handler(response, i, next_sleep)
File "/usr/local/lib/python2.7/dist-packages/boto/dynamodb2/layer1.py", line 2876, in _retry_handler
response.status, response.reason, data)
boto.dynamodb2.exceptions.ProvisionedThroughputExceededException: ProvisionedThroughputExceededException: 400 Bad Request
{u'message': u'The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API', u'__type': u'com.amazonaws.dynamodb.v20120810#ProvisionedThroughputExceededException'}
Il existe 2 façons de gérer ce problème:
Augmentez le niveau de débit (pour cette option, vous devez payer plus).
La façon dont nous devons normalement le faire à certains moments est que nous devons implémenter la logique au niveau de l'application. Par exemple, appelez dynamoDB pour rechercher une exception. Si le débit est dépassé, dormez quelques secondes et appelez à nouveau la même requête (c'est ce que nous avons implémenté dans notre application).
DynamoDB utilise un modèle de débit provisionné pour les lectures et les écritures. Cela signifie que votre application recevra des erreurs si elle essaie d'effectuer plus de lectures ou d'écritures que vous n'en avez allouées à la table.
AWS a fait un certain nombre de choses pour vous aider:
Selon le type d'application que vous créez, vous pouvez faire plusieurs choses pour faire face à ces erreurs: