久しぶりにSDKのバージョン依存に悩まされたので簡単にまとめておきます。
Azureメディアサービス v2
Azureメディアサービスは現在、v2とv3が利用可能です。
v3は漸くポータルでも対応してきましたが、Media Encoder Premium Workflowはv2しか対応していないなど、まだまだv2も使う機会があります。
とはいえ、v2の開発は既に止まっているようで、最後に更新されたのは2018年9月です。.Net Core非対応です。
windowsazure.mediaservices 4.2.0
https://www.nuget.org/packages/windowsazure.mediaservices/
Azure Functions v1.x
メディアサービスをどのPaaSで制御しようかと考えたとき、今時ではAzure Functionsになるかと思いますが、
メディアサービスのSDKが.Net Core非対応となると、Functionsも.Net Frameworkを使うことになります。
そうなるとAzure Functionsは v1.x 一択です。
ところが、数日前のv1.xの最新版ですら、Newtonsoft.Jsonのバージョンが9.0.1に固定されているのです。以上ではなく、イコールです。
Microsoft.NET.Sdk.Functions 1.0.36
https://www.nuget.org/packages/Microsoft.NET.Sdk.Functions/1.0.36
GitHubのissueでもこれまで何度も話題に挙げられたものの、この件を改善する気はないように見えます。
https://github.com/Azure/azure-functions-host/issues/2414
https://github.com/Azure/azure-functions-host/issues/3228
https://github.com/Azure/azure-functions-host/issues/4049
windowsazure.mediaservices 4.2.0のNewtonsoft.Jsonへの依存は6.0.8以上なので特に問題にはなりませんが、今度はAzure Batchの利用で制限が生じてきます。
Azure Batch
メディアサービス v2を利用し続ける理由は、Premium Workflowでしたので、ファイルサイズの大きい動画ファイルを扱うことを想定できます。
Azure Functionsでは心許ないので、実際のファイルのアセットアップロードやダウンロードはAzure Batchを利用するのが良いかと思います。
ところが、今時点でのMicorosft.Azure.Batchの最新版13.0.0は、Newtonsoft.Jsonの10.0.3以上に依存していますので、
Azure Functions v1.xでは使えません。
Microsoft.Azure.Batch 13.0.0
https://www.nuget.org/packages/Microsoft.Azure.Batch/13.0.0
約1年前にリリースされたv.11.0.0であれば、Newtonsoft.Jsonの依存は6.0.8以上なので、利用することができます。
Microsoft.Azure.Batch 11.0.0
https://www.nuget.org/packages/Microsoft.Azure.Batch/11.0.0
1年前のものであれば・・・とは思うものの、Azure Batchでは2017年9月以前のAPIの削除が通知されています。
https://docs.microsoft.com/ja-jp/rest/api/batchservice/batch-api-status
今後のことを考えると少々不安は抱えます。
まとめ
何かしら制約がないのであれば、Azureメディアサービス v3を使いましょう。(元も子もない)