0

我在使用 Azure Batch 作业时遇到问题。我正在尝试创建一个应用程序池,创建一个 CloudTask,然后在线执行我的应用程序包。

你看到有什么东西不能正常工作吗?

这是现在使用的代码。主要代码:

        await CreatePoolAsync(batchClient, currentPoolId, applicationFiles);

        await CreateJobAsync(batchClient, currentJobId, currentPoolId);

        await AddTasksAsync(batchClient, currentJobId, inputFiles, optimizationId, outputContainerSasUrl);

创建池:

    CloudPool pool = batchClient.PoolOperations.CreatePool(
        poolId: poolId,
        targetDedicated: 1, // 3 compute nodes
        virtualMachineSize: "small", // single-core, 1.75 GB memory, 225 GB disk
        cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "4")); // Windows Server 2012 R2

    pool.ApplicationPackageReferences = new List<ApplicationPackageReference>
    {
        new ApplicationPackageReference
        {
            ApplicationId = "my_app"
        }
    };

创建作业:

    CloudJob job = batchClient.JobOperations.CreateJob();
    job.Id = jobId;
    job.PoolInformation = new PoolInformation {PoolId = poolId};

    await job.CommitAsync();

并添加任务。

    string taskId = "myAppEngineTask";
    string taskCommandLine = $"cmd /c %AZ_BATCH_APP_PACKAGE_MY_APP%\\MyApp.Console.exe -a NSGA2 -r 1000 -m db -i {optimizationId}";

    CloudTask task = new CloudTask(taskId, taskCommandLine);
    task.ApplicationPackageReferences = new List<ApplicationPackageReference>
    {
        new ApplicationPackageReference
        {
            ApplicationId = "my_app"
        }
    };

    await batchClient.JobOperations.AddTaskAsync(jobId, tasks);

完成添加任务后,一切似乎都已启动并正在运行,但我收到错误代码:-2146232576 并且没有任何内容打印到任何日志中。

4

1 回答 1

0

要诊断任务失败,您首先需要查看是否设置了 CloudTask ExecutionInformation.FailureInformation(如果 SDK 7.0.0+ 或ExecutionInformation.SchedulingError之前的 SDK 版本)。检查这些字段以获取任何信息。

对于您的特定任务,当您已经在池级别完成此操作时,它看起来可能与您添加任务级应用程序包引用有关。尝试省略task.ApplicationPackageReferences.

有关池级和任务级应用程序包之间的区别以及哪一个最适合您的方案的更多信息,请参阅应用程序包文档。

于 2017-05-19T14:34:58.350 回答