在 PythonScriptStep 中访问从 HTTP URI 创建的 FileDataset 时出现问题

Issues accessing a FileDataset created from HTTP URIs in a PythonScriptStep

我在尝试访问从 Azure ML Pipeline PythonScriptStep 中的两个 http URI 创建的 FileDataset 时遇到一些问题。

在该步骤中,在挂载点上执行 os.listdir() 时,我只得到一个名为 ['https%3A’] 的文件。我本来希望有两个文件,而不是它们的实际名称。发送数据集 as_uploadas_mount 时都会发生这种情况。甚至当我将数据集引用发送到管道步骤并直接从该步骤安装它时也会发生。

数据集在笔记本中注册,创建和调用管道的笔记本相同,如下所示:

tempFileData = Dataset.File.from_files(
        ['https://vladiliescu.net/images/deploying-models-with-azure-ml-pipelines.jpg',
        'https://vladiliescu.net/images/reverse-engineering-automated-ml.jpg'])
tempFileData.register(ws, name='FileData', create_new_version=True)

#...

read_datasets_step = PythonScriptStep(
    name='The Dataset Reader',
    script_name='read-datasets.py',
    inputs=[fileData.as_named_input('Files'), fileData.as_named_input('Files_mount').as_mount(), fileData.as_named_input('Files_download').as_download()],
    compute_target=compute_target,
    source_directory='./dataset-reader',
    allow_reuse=False,
)

FileDataset 似乎注册正确,如果我在笔记本中检查它,我得到以下结果:

{
  "source": [
    "https://vladiliescu.net/images/deploying-models-with-azure-ml-pipelines.jpg",
    "https://vladiliescu.net/images/reverse-engineering-automated-ml.jpg"
  ],
  "definition": [
    "GetFiles"
  ],
  "registration": {
    "id": "...",
    "name": "FileData",
    "version": 4,
    "workspace": "Workspace.create(...)"
  }
}

作为参考,机器 运行 笔记本使用的是 AML SDK v1.24,而节点 运行 管道步骤是 运行 v1.25。

有人遇到过这样的事情吗?有什么办法让它起作用吗?

请注意,我专门查看从 web uris 创建的文件数据集,不一定有兴趣让 FileDataset 与 blob 存储或类似存储一起使用。

文件应该安装在路径“https%3A/vladiliescu.net/images/deploying-models-with-azure-ml-pipelines.jpg”和“https%3A/vladiliescu.net/images/reverse-engineering-automated-ml.jpg”。

我们保留遵循 url 结构的目录结构以避免潜在的冲突。