2017-06-16 173 views
1

我想從Azure ML實驗中訪問azure blob存儲。我完全遵循 Access Azure blog storage from within an Azure ML experiment 的回答,但出現了一些錯誤。超時:從Azure ML實驗中訪問Azure blob存儲

我的代碼是

from azure.storage.blob import BlobService 

def azureml_main(dataframe1 = None, dataframe2 = None): 
    dataframe1.to_csv("output.csv", index=True) 
    account_name = "acount_name" 
    account_key="rJfqPEFcbgpS...SKZrBs5J2eOq0IJYrc2Vg==" 
    CONTAINER_NAME = "CONTAINER_NAME" 

    blob_service = BlobService(account_name, account_key, protocol='http') 
    blob_service.put_block_blob_from_path(CONTAINER_NAME,"output","output.csv") 

錯誤日誌打擊

[Critical]  Error: Error 0085: The following error occurred during script 
evaluation, please view the output log for more information: 
---------- Start of error message from Python interpreter ---------- 
Caught exception while executing function: Traceback (most recent call last): 
File "C:\pyhome\lib\site- 
packages\requests\packages\urllib3\connectionpool.py", line 559, in urlopen 
body=body, headers=headers) 
File "C:\pyhome\lib\site- 
packages\requests\packages\urllib3\connectionpool.py", line 353, in 
_make_request 
conn.request(method, url, **httplib_request_kw) 
File "C:\pyhome\lib\http\client.py", line 1083, in request 
self._send_request(method, url, body, headers) 
File "C:\pyhome\lib\http\client.py", line 1128, in _send_request 
self.endheaders(body) 
File "C:\pyhome\lib\http\client.py", line 1079, in endheaders 
self._send_output(message_body) 
File "C:\pyhome\lib\http\client.py", line 911, in _send_output 
self.send(msg) 
File "C:\pyhome\lib\http\client.py", line 885, in send 
self.sock.sendall(data) 
socket.timeout: timed out 
During handling of the above exception, another exception occurred: 
Traceback (most recent call last): 
File "C:\pyhome\lib\site-packages\requests\adapters.py", line 376, in send 
timeout=timeout 
File "C:\pyhome\lib\site- 
packages\requests\packages\urllib3\connectionpool.py", line 609, in urlopen 
_stacktrace=sys.exc_info()[2]) 
File "C:\pyhome\lib\site-packages\requests\packages\urllib3\util\retry.py", 
line 247, in increment 
raise six.reraise(type(error), error, _stacktrace) 
File "C:\pyhome\lib\site-packages\requests\packages\urllib3\packages\six.py", 
line 309, in reraise 
raise value.with_traceback(tb) 
File "C:\pyhome\lib\site- 
packages\requests\packages\urllib3\connectionpool.py", line 559, in urlopen 
body=body, headers=headers) 
File "C:\pyhome\lib\site- 
packages\requests\packages\urllib3\connectionpool.py", line 353, in 
_make_request 
conn.request(method, url, **httplib_request_kw) 
File "C:\pyhome\lib\http\client.py", line 1083, in request 
self._send_request(method, url, body, headers) 
File "C:\pyhome\lib\http\client.py", line 1128, in _send_request 
self.endheaders(body) 
File "C:\pyhome\lib\http\client.py", line 1079, in endheaders 
self._send_output(message_body) 
File "C:\pyhome\lib\http\client.py", line 911, in _send_output 
self.send(msg) 
File "C:\pyhome\lib\http\client.py", line 885, in send 
self.sock.sendall(data) 
requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', 
timeout('timed out',)) 
During handling of the above exception, another exception occurred: 
Traceback (most recent call last): 
File "C:\server\invokepy.py", line 199, in batch 
odfs = mod.azureml_main(*idfs) 
File "C:\temp\a24f27b62ef74991b262bafe5e685164.py", line 39, in azureml_main 
blob_service.put_block_blob_from_path(CONTAINER_NAME,"ppp","output.csv") 
File "c:\temp\script bundle\azure\storage\blob\blobservice.py", line 975, in 
put_block_blob_from_path 
retry_wait) 
File "c:\temp\script bundle\azure\storage\blob\blobservice.py", line 1072, in 
put_block_blob_from_file 
x_ms_lease_id) 
File "c:\temp\script bundle\azure\storage\blob\blobservice.py", line 883, in 
put_blob 
self._perform_request(request) 
File "c:\temp\script bundle\azure\storage\storageclient.py", line 171, in 
_perform_request 
resp = self._filter(request) 
File "c:\temp\script bundle\azure\storage\storageclient.py", line 160, in 
_perform_request_worker 
return self._httpclient.perform_request(request) 
File "c:\temp\script bundle\azure\storage\_http\httpclient.py", line 181, in 
perform_request 
self.send_request_body(connection, request.body) 
File "c:\temp\script bundle\azure\storage\_http\httpclient.py", line 143, in 
send_request_body 
connection.send(request_body) 
File "c:\temp\script bundle\azure\storage\_http\requestsclient.py", line 81, 
in send 
self.response = self.session.request(self.method, self.uri, data=request_body, 
headers=self.headers, timeout=self.timeout) 
File "C:\pyhome\lib\site-packages\requests\sessions.py", line 468, in request 
resp = self.send(prep, **send_kwargs) 
File "C:\pyhome\lib\site-packages\requests\sessions.py", line 576, in send 
r = adapter.send(request, **kwargs) 
File "C:\pyhome\lib\site-packages\requests\adapters.py", line 426, in send 
raise ConnectionError(err, request=request) 
requests.exceptions.ConnectionError: ('Connection aborted.', timeout('timed 
out',)) 
Process returned with non-zero exit code 1 

任何幫助或想法表示讚賞!

+0

謝謝您的評論,Peter Pan。 – CannonballAdelie

回答

0

我試圖通過複製您的代碼並上傳數據集zip文件來重現您的問題,包括azure python library,但失敗。

根據錯誤信息,它似乎只是一個網絡層問題。也許稍後再試,它會起作用。

根據我的經驗,其他建議如下。

  1. 檢查您的存儲帳戶是否啓用Secure transfer required選項在Configuration選項卡中。如果是這樣,請刪除protocol='http'代碼或更改爲https
  2. 根據您使用的存儲API,它是Azure存儲Python SDK的舊版本0.20.3。您可以上傳包含新版本0.34.3而不是舊版本的數據集zip文件以再次嘗試。

希望它有幫助。