简体   繁体   English

FileUploadMiscError天蓝色的批处理输出文件

[英]FileUploadMiscError azure batch output file

I am trying to upload output file to Azure blob after azure batch cloud task is done using c#. 我正在尝试使用c#完成天蓝色批处理云任务后将输出文件上传到Azure blob。 My code is working fine but it's giving FileUploadMiscError - Task failed "A miscellaneous error was encountered while uploading one of the output files" error randomly for different tasks. 我的代码运行正常,但是给出了FileUploadMiscError-任务失败针对不同任务随机出现“上载输出文件之一时遇到杂项错误”错误。

ContainerSASUrl code - ContainerSASUrl代码 -

 SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy
            {
                SharedAccessExpiryTime = DateTime.UtcNow.AddHours(sasUrlExpirationTime),
                Permissions = SharedAccessBlobPermissions.Write
            };
            string sasContainerToken = string.Empty;
            CloudBlobContainer container = BlobClient.GetContainerReference(containerName);

            if (await container.CreateIfNotExistsAsync())
            {
                sasContainerToken = container.GetSharedAccessSignature(sasConstraints);
            }
            sasContainerToken = container.GetSharedAccessSignature(sasConstraints);
       string outputContainerSasUrl= string.Format("{0}{1}", container.Uri, sasContainerToken);

Task submission - 任务提交 -

 CloudTask task = new CloudTask(taskId, taskCommandLine)
                            {
                                OutputFiles = new List<OutputFile>
                                {
                                    new OutputFile(
                                        filePattern: @"../std*.txt",
                                        destination: new OutputFileDestination(
                                                        new OutputFileBlobContainerDestination(
                                                                containerUrl: outputContainerSasUrl,
                                                        path: jobdetails.JobId+"/output")),
                                        uploadOptions: new OutputFileUploadOptions(
                                                        uploadCondition: OutputFileUploadCondition.TaskCompletion)
                                    ),
                                    new OutputFile(
                                        filePattern: @"%AZ_BATCH_JOB_PREP_WORKING_DIR%\*.dat",
                                        destination: new OutputFileDestination(new OutputFileBlobContainerDestination(
                                                            containerUrl: outputContainerSasUrl,
                                                            path:jobdetails.JobId+"/output")),
                                        uploadOptions: new OutputFileUploadOptions(
                                                            uploadCondition: OutputFileUploadCondition.TaskCompletion))
                                }
                            };
                            task.UserIdentity = new UserIdentity(new AutoUserSpecification(AutoUserScope.Pool, ElevationLevel.Admin));
                            task.ResourceFiles = inputFiles;
                            TaskConstraints taskConstraints = new TaskConstraints();
                            taskConstraints.MaxTaskRetryCount = 2;
                            task.Constraints = taskConstraints;

This code is working fine, but it's failing randomly 这段代码可以正常工作,但是随机失败

Can you check your fileuploadout.txt and fileuploaderr.txt which should be written alongside the task stdout.txt and stderr.txt? 您可以检查应该与任务stdout.txt和stderr.txt一起编写的fileuploadout.txt和fileuploaderr.txt吗? Ideally, if you can share them here (make sure to redact any details such as SAS's which are logged in them). 理想情况下,如果您可以在此处共享它们(请确保删除其中记录的所有详细信息,例如SAS)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM