首页 > 其他分享 >【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题

【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题

时间:2023-05-10 21:23:50浏览次数:63  
标签:DefaultAzureCredential Service 缩略图 示例 var Azure options AZURE ID

问题描述

在中国区Azure上,使用Media Service服务,想要使用.NET的代码来对上传视频创建缩略图(Thumbnail) 。

通过官网文档(https://docs.azure.cn/zh-cn/media-services/latest/samples/samples-encoding-reference#create-a-thumbnail-sprite)下载.NET示例,配置 appsettings.json 中的参数,运行却出现(Azure.Identity.AuthenticationFailedException: 'ClientSecretCredential authentication failed: AADSTS90002: )异常。

Azure.Identity.AuthenticationFailedException: 'ClientSecretCredential authentication failed: AADSTS90002: Tenant '********-****-****-****-************' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Check with your subscription administrator, this may happen if there are no active subscriptions for the tenant.

Trace ID: 99b963f7-86a5-4cde-a890-8828eff73000

Correlation ID: 62d4fa3b-92ad-4411-850c-87f562a256b3

Timestamp: 2023-05-10 07:25:55Z'

问题解答

查看.NET项目中的源码,发现获取Credential的代码使用的是 DefaultAzureCredential()。并且 ArmClient 对象也没有指定Azure的运行环境。

var mediaServicesResourceId = MediaServicesAccountResource.CreateResourceIdentifier(
    subscriptionId: options.AZURE_SUBSCRIPTION_ID.ToString(),
    resourceGroupName: options.AZURE_RESOURCE_GROUP,
    accountName: options.AZURE_MEDIA_SERVICES_ACCOUNT_NAME);

var credential = new DefaultAzureCredential(includeInteractiveCredentials: true);
var armClient = new ArmClient(credential);
var mediaServicesAccount = armClient.GetMediaServicesAccountResource(mediaServicesResourceId);

默认情况下,它们都是指向Global Azure,而非China Azure。

所以,解决当前问题的方法就是在DefaultAzureCredential和ArmClient方法中指定中国区Azure为运行环境。

修改这部分代码为为:

var mediaServicesResourceId = MediaServicesAccountResource.CreateResourceIdentifier(
    subscriptionId: options.AZURE_SUBSCRIPTION_ID.ToString(),
    resourceGroupName: options.AZURE_RESOURCE_GROUP,
    accountName: options.AZURE_MEDIA_SERVICES_ACCOUNT_NAME);

DefaultAzureCredentialOptions dacOptions = new DefaultAzureCredentialOptions() { AuthorityHost = AzureAuthorityHosts.AzureChina };
var credential = new DefaultAzureCredential(dacOptions);

ArmClientOptions armOptions = new ArmClientOptions() { Environment = ArmEnvironment.AzureChina};
var armClient = new ArmClient(credential, options.AZURE_SUBSCRIPTION_ID.ToString(), armOptions);

var mediaServicesAccount = armClient.GetMediaServicesAccountResource(mediaServicesResourceId);

注意:使用 DefaultAzureCredential 认证,需要设置以下的环境变量

  1. AZURE_CLIENT_ID
  2. AZURE_TENANT_ID
  3. AZURE_CLIENT_SECRET

变量说明: https://learn.microsoft.com/en-us/dotnet/api/overview/azure/identity-readme?view=azure-dotnet#environment-variables

关于DefaultAzureCredential方法获取认证参数的顺序,如下图所示:

参考资料

DefaultAzureCredential : https://learn.microsoft.com/en-us/dotnet/api/overview/azure/identity-readme?view=azure-dotnet#defaultazurecredential

 

标签:DefaultAzureCredential,Service,缩略图,示例,var,Azure,options,AZURE,ID
From: https://www.cnblogs.com/lulight/p/17389365.html

相关文章

  • 使用 Python 语言实现的简单版俄罗斯方块的代码示例
    importpygameimportrandompygame.init()#定义颜色BLACK=(0,0,0)WHITE=(255,255,255)GRAY=(128,128,128)CYAN=(0,255,255)BLUE=(0,0,255)ORANGE=(255,165,0)YELLOW=(255,255,0)GREEN=(0,128,0)PURPLE=(128,0,128)#定义方块......
  • Web Services:Apache XML-RPC
    XML-RPC(http://ws.apache.org/xmlrpc/ )的全称是XML Remote Procedure Call,即XML远 程方法 调 用。是JAVA 实现 的XML-RPC。        这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽XML-RPC(http://ws.apache.org/xml......
  • 全网商品搜索|1688|Taobao|天猫|京东api接口展示示例
    ​电商API(ApplicationProgrammingInterface,应用程序编程接口)是指电商平台开放的一组数据接口,通过这些接口可以实现对电商平台商品、订单、物流等信息进行访问、查询、修改、删除等操作。电商API涉及到的主要数据包括:1.商品数据:包括商品名称、价格、库存、分类、描述、图片......
  • PHP面向接口编程及多态-示例代码
    /***1.接口使用上也满足多态性*2.接口实际是定义一种规范*3.体会面向接口编程*/interfaceUsb{publicfunctionstart();publicfunctionstop();}classFlashimplementsUsb{publicfunctionstart(){echo'U盘启动';echo'<br>';......
  • k8s service资源
    在Kubernetes中,Service资源是一种抽象的逻辑概念,它定义了一组Pod的访问方式,为Pod提供稳定的DNS名称和IP地址,通过代理(Proxy)的方式向应用程序终端用户提供可靠的访问。Service资源对象提供了以下功能:为一组具有相同功能但可能在不同Pod或节点中的Pod提供一个稳定的虚拟IP地址和DN......
  • AMD MPSoC R5 AES加密示例
    AMDMPSoCR5AES示例目录AMDMPSoCR5AES示例测试环境测试单板测试工具R5AES测试流程创建Platform使能AES库导入AES示例定制AES密钥内存地址创建密文运行AES测试环境测试单板ZCU06测试工具Vitis2021.2R5AES测试流程创建Platform在Vitis的“File-New”中,......
  • java.lang.IllegalStateException: Failed to check the status of the service 的解
    参考资料java.lang.IllegalStateException:Failedtocheckthestatusoftheservice的解决办法_Hello_World_QWP的博客-CSDN博客环境条件springcloud,注册中心用的是zookeeper;报错原因@ReferenceprivateXXXServicexxxService;解决方法@Refe......
  • android.app.BackgroundServiceStartNotAllowedException
    ---------beginningofcrash05-0901:25:24.46521872187EAndroidRuntime:FATALEXCEPTION:main05-0901:25:24.46521872187EAndroidRuntime:Process:com.android.gallery3d,PID:218705-0901:25:24.46521872187EAndroidRuntime:java.lang.Runti......
  • 设置win11 任务栏不显示缩略图
    1、定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband;2、右侧空白处单击右键,选择新建-DWORD(32位)值;3、名称改为“NumThumbnails”,值为0;4、重启进程explorer.exe这样看着就清楚多了......
  • 【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP
    问题描述查看JavaStorageSDK,想找一个 uploadWithResponse 的示例代码,但是通过全网搜索,结果没有任何有帮助的代码。使用最近ChatGPT来寻求答案,得到非常有格式的内容:问:javaazurestorageaccounttouseuploadWithResponse答:TousetheuploadWithResponsemethodw......