【发布时间】:2019-01-24 12:03:36
【问题描述】:
在使用 c# 完成天蓝色批处理云任务后,我正在尝试将输出文件上传到 Azure blob。我的代码工作正常,但它给不同的任务随机给出 FileUploadMiscError - Task failed "A miscellaneous error was received while uploading a output files" 错误。
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);
任务提交 -
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;
此代码运行良好,但随机失败
【问题讨论】:
标签: c# azure azure-batch