При выполнении длительных процессов я получаю:Boto RequestExpired
...
content_repl/replicate_content.py", line 667, in detach_and_delete
volumes = ec2_conn.get_all_volumes(volume_ids=volumes_ids)
File "/usr/lib/python2.7/site-packages/boto/ec2/connection.py", line 2158, in get_all_volumes
[('item', Volume)], verb='POST')
File "/usr/lib/python2.7/site-packages/boto/connection.py", line 1186, in get_list
raise self.ResponseError(response.status, response.reason, body)
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>RequestExpired</Code><Message>Request has expired.</Message></Error></Errors><RequestID>xxxxxxxx</RequestID></Response>
Обратите внимание, что многие операции выполняются по сценарию без проблем. В начале сценария у меня есть:
ec2_conn = boto.ec2.connect_to_region(AWS_REGION,
aws_access_key_id=assumedRoleObject.credentials.access_key,
aws_secret_access_key=assumedRoleObject.credentials.secret_key,
security_token=assumedRoleObject.credentials.session_token,proxy=PROXY,proxy_por=PROXY_PORT)
Чтение Boto connect_xxx method and connection pools и Boto DOCS я понимаю, что Boto должен обрабатывать соединения внутри и получить новый, когда это необходимо. Это верно? Должен ли я добавить параметр для этого? Реализовать логику повторов самостоятельно?
Btw, я использую v2.40. Приложение однопоточное.
Вы проверили время на этом компьютере, чтобы узнать, является ли оно точным? Запросы имеют временную метку для предотвращения повторных атак, поэтому мне интересно, может ли это быть причиной сообщения об истечении срока действия? –
@JohnRotenstein У меня есть, поэтому я упомянул, что многие операции выполнялись раньше. Я думаю, что проблема заключается в тайм-ауте, но, похоже, это проблема, которую я не должен иметь, если соединения обрабатываются автоматически. – Federico
Изучите содержимое ответа от 'предполагаетсяRoleObject.credentials.session_token'. Токены истекают. Не уверен, что это сообщение, которое вы получили бы, если это проблема, но они истекают. –