我想从Azure ML实验中访问azure blob存储。我完全听从了答案 Access Azure blog storage from within an Azure ML experiment 但是,有一些错误。
我的代码是
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 :(得分:0)
我尝试通过复制代码重现您的问题并上传包含azure python library的数据集zip文件,但失败了。
根据错误信息,它似乎只是一个网络层问题。也许稍后再试,它会奏效。
根据我的经验,其他建议如下。
Secure transfer required
标签中启用了Configuration
选项。如果是,请删除protocol='http'
代码或更改为https
。0.20.3
。您可以上传包含新版本0.34.3
而不是旧版本的数据集zip文件,以便重试。希望它有所帮助。