我已经发布了我的问题here,他们建议我在这里发布。我试图将数据从Azure ML导出到Azure存储,但我有这个错误:
写入云存储时出错:远程服务器返回错误:(400)错误请求..请检查网址。 。 (错误0151)
我的blob存储配置是Storage v2 / Standard,并且要求将安全传输设置为已启用。
如果我将Require secure transfer set设置为disabled,则导出正常。
如何将需要的安全传输设置为已启用,将数据导出到我的blob存储?
根据官方教程qazxsw poi,有两种身份验证类型可用于将数据导出到Azure Blob存储:SAS和帐户。对它们的描述如下。
- 对于身份验证类型,如果您知道存储支持通过SAS URL进行访问,请选择公共(SAS URL)。 SAS URL是一种特殊类型的URL,可以使用Azure存储实用程序生成,并且仅在有限时间内可用。它包含身份验证和下载所需的所有信息。 对于URI,键入或粘贴定义帐户和公共blob的完整URI。
- 对于私人帐户,请选择“帐户”,然后提供帐户名称和帐户密钥,以便实验可以写入存储帐户。 帐户名称:键入或粘贴要保存数据的帐户的名称。例如,如果存储帐户的完整URL是
Export to Azure Blob Storage
,则应键入myshared。 帐户密钥:粘贴与帐户关联的存储访问密钥。
我尝试使用一个简单的模块组合作为下面的图和Python代码来测试你得到的问题。
http://myshared.blob.core.windows.net
当我尝试使用我的Blob Storage V2帐户的身份验证类型import pandas as pd
def azureml_main(dataframe1 = None, dataframe2 = None):
dataframe1 = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
return dataframe1,
时,我得到了与您相同的问题,错误代码是Account
,如下所示,点击Error 0151链接下的View error log
按钮。
View output log
错误0151
写入云存储时出错。请检查URL。
当模块尝试将数据写入云存储但URL不可用或无效时,会发生Azure机器学习中的此错误。
解决方法检查URL并验证它是否可写。
异常消息
- 写入云存储时出错(可能是错误的URL)。
- 写入云存储时出错:{0}。请检查网址。
根据上面的错误描述,错误应该是由带有帐户信息的模块代码错误生成SAS的blob url引起的。我认为代码是旧的,与新的V2存储API或API版本信息不兼容。您可以向Export Data
报告。
但是,我切换到使用feedback.azure.com
身份验证类型来输入我的容器的SAS查询字符串的blob url,我通过SAS
工具生成如下,它工作正常。
图1:右键单击Blob Storage帐户的容器,然后单击Azure Storage Explorer
Get Shared Access Signature
Create
图3:复制值,并使用像Query string
这样的容器SAS查询字符串构建blob网址
https://<account name>.blob.core.windows.net/<container name>/<blob name><query string>