尝试监视Azure Batch任务时获取``禁止对未绑定对象执行此操作''

psfinaki

我想在Azure Batch中执行一个简单的任务,等待它完成并获取结果:

using (var client = _CreateBatchClient())
{
    var monitor = client.Utilities.CreateTaskStateMonitor();

    var task = new CloudTask(Guid.NewGuid().ToString(), "echo hello world");
    await client.JobOperations.AddTaskAsync("Test", task);
    await monitor.WhenAll(new List<CloudTask> { task }, TaskState.Completed, _timeout);

    var result = task.ExecutionInformation.Result;
}

WhenAsync线抛出System.InvalidOperationException: 'This operation is forbidden on unbound objects.'

消息很模糊,而我离本教程不远怎么了?

psfinaki

从此代码中看不出来,但实际上Azure Batch在这里不知道如何识别任务。该作业包含任务,但是任务没有对其运行的作业的引用。任务ID也不是全局性地标识任务,它只需要在工作中是唯一的即可。

这可能是“未绑定对象”的含义。监视器只是不明白要看什么。实际上,如果该WhenAsync行被注释,则下一行将引发类似的InvalidOperationException: 'The property ExecutionInformation cannot be read while the object is in the Unbound state.'

因此正确的方法是通过作业引用任务:

using (var client = _CreateBatchClient())
{
    var monitor = client.Utilities.CreateTaskStateMonitor();

    var id = Guid.NewGuid().ToString();
    var taskToAdd = new CloudTask(id, "echo hello world");
    await client.JobOperations.AddTaskAsync("Test", taskToAdd);

    var taskToTrack = await client.JobOperations.GetTaskAsync("Test", id);
    await monitor.WhenAll(new List<CloudTask> { taskToTrack }, TaskState.Completed, _timeout);
}

比较:

要添加的任务 跟踪任务

为了获得结果信息,需要再次“找到”作业中的任务,否则它将为null。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过使用Azure DevOps Pipeline中的命令行任务执行EXE来尝试打开Excel文件时获取异常

在监视功能时,Azure将什么算作错误?

开发azure功能时是否有办法监视文件更改?

尝试从 Azure 容器注册表获取 Docker 映像时出现 Azure Batch NodePreparationError

尝试监视在 ngOnInit 内部调用的服务方法时未达到 Jasmine spy callFake

尝试使用数组执行任务时出现 Azure DevOps 错误

尝试使用 powershell 获取 azure webapp 状态

尝试访问Azure Function时出错

Azure Webjob - 尝试打开 ChromeDriver 时超时

当我尝试安装分区时,Thunar表示“未授权执行此操作”。我怎样才能解决这个问题?

尝试获取Azure Web应用程序对象ID时获取了多个值

上载未保存的文件时“尝试获取非对象的属性”

尝试获取 Azure 价目表时出错

尝试使用CORS时获取403(禁止)

我正在尝试监视一个网站,但响应状态代码更新时我的代码没有更新

Java7 WatchService-尝试删除递归监视的嵌套目录时出现“拒绝访问”错误(仅Windows)

如何使用.Net SDK获取Azure ARM虚拟机的监视数据

在 Kusto 查询语言(Azure 监视器日志)中仅获取类别中的唯一值

从Azure DevOps管道启动时,XRay扫描找不到任何监视

当不在门户中进行监视时,Azure函数ApiHubFileTrigger不与消耗计划一起执行

System.Security.HostProtectionException:尝试执行CLR主机禁止的操作

Azure Maps请求监视

Microsoft Azure启动任务未执行

尝试在Windows中更改时区时出错:“无法继续。您没有执行此任务的权限。”

当我尝试对R中的数据集进行升采样时,未执行任何操作

尝试执行任何apt操作时出现“ E:pycompile:233:未安装请求的版本”

403 尝试使用 Azure 通知中心批量发送时被禁止

没有连接可用于执行此操作:使用Azure Redis缓存时

尝试释放 Azure 容器租约时出现 403 授权错误