在Azure批处理上执行任务

在Azure批处理上执行任务,azure,azure-storage,azure-batch,Azure,Azure Storage,Azure Batch,我是Azure batch的新手。我必须在池中的节点上执行任务 我使用的方法是,我有我想要在节点上运行的代码。我正在制作.class文件的jar压缩包并上传到我的Azure存储帐户,然后获取应用程序Id并将其放入ApplicationPackageReference中,并将其添加到作业中的任务中 String applicationId= "TaskPerformApplicationPack"; ApplicationPackageReference reference = new Appli

我是Azure batch的新手。我必须在池中的节点上执行任务

我使用的方法是,我有我想要在节点上运行的代码。我正在制作.class文件的jar压缩包并上传到我的Azure存储帐户,然后获取应用程序Id并将其放入ApplicationPackageReference中,并将其添加到作业中的任务中

String applicationId= "TaskPerformApplicationPack";
ApplicationPackageReference reference = new ApplicationPackageReference().withApplicationId(applicationId);
List<ApplicationPackageReference> list = new ArrayList<ApplicationPackageReference>();
list.add(reference);
TaskAddParameter taskToAdd = new TaskAddParameter().withId("mytask2").withApplicationPackageReferences(list);
taskToAdd.withCommandLine(String.format("java -jar task.jar"));


batchClient.taskOperations().createTask(jobId, taskToAdd);
String applicationId=“TaskPerformApplicationPack”;
ApplicationPackageReference引用=新的ApplicationPackageReference(),带有applicationId(applicationId);
列表=新的ArrayList();
列表。添加(参考);
TaskAddParameter taskToAdd=new TaskAddParameter()。带ID(“mytask2”)。带应用程序包引用(列表);
taskToAdd.withCommandLine(String.format(“java-jartask.jar”);
batchClient.taskOperations().createTask(作业ID,任务添加);
现在,当我运行它时,我的任务失败,并给出一个错误

对其中一个指定Azure Blob的访问被拒绝


如何使用azure批处理作业任务在节点上运行特定代码?

我认为一个好的起点是:(我已经介绍了大多数有用的链接以及下面的指导文档,它们将详细说明环境级别变量等的使用,我还包括一些示例链接。)希望下面的资料和示例能够帮助您<代码>:)

另外,如果池是旧的,我建议重新创建它,这将确保节点以最新版本运行

  • :
  • 或者看
文章的进一步补充:另请参见:

特别是,该链接将引导您完成如何在代码中使用它的指导过程:也可以是资源文件或包,您需要确保它们已上载并可在批处理级别使用

以及以下示例:(下面是池级pkg示例)

//创建未绑定的云池
云池myCloudPool=
batchClient.PoolOperations.CreatePool(
poolId:“myPool”,
目标专用计算机节点:1,
虚拟机器:“小”,
cloudServiceConfiguration:新的cloudServiceConfiguration(osFamily:“4”);
//指定要在计算节点上安装的应用程序和版本
myCloudPool.ApplicationPackageReferences=新列表

CloudTask任务=
新云任务(
“litwaretask001”,
“cmd/c%AZ_BATCH_APP_PACKAGE_LITWARE%\\LITWARE.exe-args-here”);
task.ApplicationPackageReferences=新列表

我尝试了一下,并且成功了,所以我无法复制上面的错误,看起来你可能遗漏了什么

// Create the unbound CloudPool
CloudPool myCloudPool =
    batchClient.PoolOperations.CreatePool(
        poolId: "myPool",
        targetDedicatedComputeNodes: 1,
        virtualMachineSize: "small",
        cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "4"));

// Specify the application and version to install on the compute nodes
myCloudPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "litware",
        Version = "1.1" }
};

// Commit the pool so that it's created in the Batch service. As the nodes join
// the pool, the specified application package is installed on each.
await myCloudPool.CommitAsync();
CloudTask task =
    new CloudTask(
        "litwaretask001",
        "cmd /c %AZ_BATCH_APP_PACKAGE_LITWARE%\\litware.exe -args -here");

task.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference
    {
        ApplicationId = "litware",
        Version = "1.1"
    }
};