2

对于我的任务,我使用本地持久数据。到目前为止,我已经成功地用于Path.GetTempPath()获取临时文件夹并在那里保存数据并执行一些计算。临时文件夹位于不够大的系统驱动器上(大约 30GB)。我正在使用带有 1000GB 硬盘的 VM。

我想将数据写入大 C:\ 驱动器,但它会引发异常: Access to the path 'C:\whatever_the_path_is' is denied.当我尝试访问它时。

我看到任务在PoolNonAdmin[some-digits]显然没有足够权限的用户下运行。

是否有任何特殊 API 可将本地存储与 Azure Batch 任务一起使用?

编辑:我很熟悉,%AZ_BATCH_NODE_SHARED_DIR%但由于特定原因我不能使用它。

4

2 回答 2

2

可以将 Azure Batch 定义的环境变量用于引用临时磁盘的路径。例如,%AZ_BATCH_TASK_WORKING_DIR%将针对当前任务的工作目录(并且可以由运行该任务的任何用户写入)。或者该%AZ_BATCH_NODE_SHARED_DIR%变量将引用始终位于临时磁盘上的共享目录路径;所有用户(在其下运行任务,无论是池管理员、非管理员还是临时任务用户)都可以写入此目录。您可以在此处查看Azure Batch 定义的所有环境变量。

于 2017-06-22T14:22:21.953 回答
1

我在这里找到了解决方案: https ://docs.microsoft.com/en-us/azure/batch/batch-user-accounts

在我的例子中,它是像这样分配提升 UserIdentity 的任务:

task.UserIdentity = new UserIdentity(new AutoUserSpecification(elevationLevel: ElevationLevel.Admin, scope: AutoUserScope.Pool));

于 2017-06-22T14:48:56.800 回答