2013-06-21 38 views
9

Làm cách nào để có được chẩn đoán hữu ích từ boto? Tất cả những gì tôi có thể nhận được là "Yêu Cầu Xấu 400" vô dụng. Tôi nhận ra rằng boto chỉ là đi dọc theo những gì API cơ bản tạo sẵn, nhưng chắc chắn có một số cách để có được một cái gì đó hữu ích hơn "Bad Request".Làm cách nào để nhận chẩn đoán hữu ích từ boto?

Traceback (most recent call last): 
    File "./mongo_pulldown.py", line 153, in <module> 
    main() 
    File "./mongo_pulldown.py", line 24, in main 
    print "snap = %r" % snap 
    File "./mongo_pulldown.py", line 149, in __exit__ 
    self.connection.delete_volume(self.volume.id) 
    File "/home/roy/deploy/current/python/local/lib/python2.7/site-packages/boto/ec2/connection.py", line 1507, in delete_volume 
    return self.get_status('DeleteVolume', params, verb='POST') 
    File "/home/roy/deploy/current/python/local/lib/python2.7/site-packages/boto/connection.py", line 985, in get_status 
    raise self.ResponseError(response.status, response.reason, body) 
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request 
+0

'nhập boto; boto.set_stream_logger ('boto') 'sẽ in kết quả json bao gồm bất kỳ lỗi nào gặp phải với bàn điều khiển. – ecoe

Trả lời

6

Bạn có thể configure the boto.cfg tập tin được tiết hơn:

[Boto] 
debug = 2 

debug: Điều khiển mức độ thông điệp debug sẽ được in bởi thư viện boto. Các giá trị sau được định nghĩa:

0 - no debug messages are printed 
1 - basic debug messages from boto are printed 
2 - all boto debugging messages plus request/response messages from httplib 
+1

Điều đó không cung cấp thêm bất kỳ thông tin nào. Vấn đề là phản hồi HTTP quay trở lại chỉ có "400 Yêu cầu Xấu" trong cơ thể. Những gì tôi thực sự cần là một số cách để có được các máy chủ để cung cấp thêm thông tin về những gì đã đi sai. –

+0

Từ mã, có vẻ như người ta có thể bật thông tin này trên cơ sở mỗi kết nối. Thí dụ? – dfrankow

5

Tôi không có nhiều may mắn với việc đưa các thiết lập debug trong file config, nhưng cuộc gọi đến ec2.connect_to_region() nhận một tham số debug, với các giá trị tương tự như trong câu trả lời của j0nes.

ec2 = boto.ec2.connect_to_region("eu-west-1", debug=2) 

Mọi thứ mà đối tượng kết nối gửi/nhận sẽ bị bán phá giá.