1
我已經包含了一些將war文件上傳到s3存儲桶的代碼(如果它不存在,首先創建存儲桶)。然後使用剛剛上傳的war文件創建一個彈性beanstalk應用程序版本。調用create_application_version時,會導致「BotoServerError:400錯誤請求」的原因是什麼?
假設/tmp/server_war
存在並且是有效的war文件。以下代碼將失敗boto.exception.BotoServerError: BotoServerError: 400 Bad Request
:
#!/usr/bin/env python
import time
import boto
BUCKET_NAME = 'foo_bar23498'
s3 = boto.connect_s3()
bucket = s3.lookup(BUCKET_NAME)
if not bucket:
bucket = s3.create_bucket(BUCKET_NAME, location='')
version_label = 'server%s' % int(time.time())
# uplaod the war file
key_name = '%s.war' % version_label
s3key = bucket.new_key(key_name)
print 'uploading war file...'
s3key.set_contents_from_filename('/tmp/server.war',
headers={'Content-Type' : 'application/x-zip'})
# uses us-east-1 by default
eb = boto.connect_beanstalk()
eb.create_application_version(
application_name='TheApp',
version_label=version_label,
s3_bucket=BUCKET_NAME,
s3_key=key_name,
auto_create_application=True)
會造成這種情況嗎?
我很高興你做到了;我似乎遇到了這個錯誤,並且它的調試輸出是不可思議的。 – davenpcj