【问题标题】:Local VM storage in Azure Batch taskAzure Batch 任务中的本地 VM 存储
【发布时间】:2017-06-22 13:32:35
【问题描述】:

对于我的任务,我使用的是本地持久化数据。到目前为止,我已经成功使用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% 很熟悉,但由于特定原因我不能使用它。

【问题讨论】:

    标签: azure azure-batch


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-04
        • 1970-01-01
        • 2018-03-29
        • 1970-01-01
        • 2016-04-03
        相关资源
        最近更新 更多