Azure Медиа-сервис CreateWithHttpMessagesAsyn c - Операция вернула недопустимый код состояния: «BadRequest» - - PullRequest
0 голосов
/ 16 января 2020

Я использую Azure Media Services v3 с приложением Azure Function v3 и столкнулся с проблемой при попытке создать новое задание по URL-адресу https.

У меня есть следующий метод в Azure Function, который отправляет задание.

private static async Task<Job> SubmitJobAsync(IAzureMediaServicesClient client, string transformNam, string jobName, string fileUrl) {
    JobInputHttp jobInput = new JobInputHttp(files: new [] { fileUrl });
    JobOutput[] jobOutputs = 
    {
        new JobOutputAsset(jobName)
    }

    Job job = await client.Jobs.CreateAsync(
        _resourceGroupName,
        _accountName,
        transformName,
        jobName,
        new Job
        {
            Input = jobInput,
            Outputs = jobOutputs
        },
        CancellationToken.None);

    return job;
}

Ошибка на линии, которая фактически создает задание await client.Jobs.CreateAsync(..., и возвращает исключение с сообщение:

Операция вернула недопустимый код состояния 'BadRequest'

Трассировка стека:

в Microsoft. Azure .Management .Media.JobsOperations.CreateWithHttpMessagesAsyn c (String resourceGroupName, String accountName, String transformName, String jobName, параметры Job, Dictionary`2 customHeaders, CancellationToken cancellationToken) в Microsoft. Azure .Management.MediaSOnsations.Jase (Операции IJobsOperations, String resourceGroupName, String accountName, String transformName, String jobName, параметры Job, CancellationToken cancellationToken)

Любая идея, что это значит или как я могу далее отлаживать это?

1 Ответ

4 голосов
/ 16 января 2020

Я думаю, что проблема в том, что вы не создали выходной актив до создания задания. Попробуйте добавить следующие строки перед созданием вакансии:

string outputAssetName = jobName;

Asset outputAsset = await client.Assets.CreateOrUpdateAsync(_resourceGroupName, _accountName, outputAssetName, new Asset());

JobOutput[] jobOutputs = 
        {
            new JobOutputAsset(outputAssetName)
        }

См. Также: https://github.com/Azure-Samples/media-services-v3-dotnet-core-functions-integration/blob/master/LiveAndVodDRMOperationsV3/LiveAndVodDRMOperationsV3/VodFunctions/submit-job.cs

...