Time out: Access Azure blob storage from within an Azure ML experiment

297
June 16, 2017, at 5:52 PM

I would like to access azure blob storage from within an Azure ML experiment. I completely followed the answer from Access Azure blog storage from within an Azure ML experiment however, there was some error.

My code is

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")

The error log is blow

[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

Any help or thought is appreciated!

Answer 1

I tried to reproduce your issue via copy your code and upload a dataset zip file include azure python library, but failed.

According to the error information, it seems to be just a network layer issue. Maybe try again later and it will works.

And per my experience, other suggestions as below.

  1. Check your storage account whether enabled Secure transfer required option in the Configuration tab. If so, please remove the protocol='http' code or change to https.
  2. According to the storage APIs you used, it's the old version 0.20.3 of Azure Storage Python SDK. You can upload a dataset zip file include new version 0.34.3 instead of the old one to try again.

Hope it helps.

Rent Charter Buses Company
READ ALSO
Text segmentation in architecture floorplans

Text segmentation in architecture floorplans

For a complete floor plan analysis, text segmentation from the other graphic image is the crucial partI have tried tesseract but it isn't that great, its because the text is in different orientations

292
How to print scientific notation with all significant digits moved after decimal point in python

How to print scientific notation with all significant digits moved after decimal point in python

I am trying to print scientific numbers with all the significant digits after the decimal point`

425
Get nested array sent from frontend in Flask request.form

Get nested array sent from frontend in Flask request.form

Unable to access cols_data javascript array in flask requestform

298
How to get the index of a maximum element in a numpy array along one axis

How to get the index of a maximum element in a numpy array along one axis

I have a 2 dimensional NumPy arrayI know how to get the maximum values over axes:

569