使用适用于 .NET 的 Azure 流分析 API 设置和运行分析作业

问题描述

我正在尝试通过此 guide 来运行 .net 中的流分析客户端。

在 Visual Studio 中,我在 GetCredentials 方法中收到一条错误消息,提示“UserTokenProvider 不包含 LoginWithPromptAsync 的定义”。

根据设置项目的要求,我正在使用以下内容

Microsoft.Azure.Management.StreamAnalytics - 2.0.0 版

Microsoft.Rest.ClientRuntime.Azure.Authentication -Version 2.3.1

我可以使用哪种其他方法,有人可以帮忙吗?

解决方法

如果要使用适用于 .NET 的 Azure 流分析 API 运行分析作业,可以使用服务主体进行身份验证。

例如

  1. 创建服务主体并将 Azure RABC 角色分配给 sp
az ad sp create-for-rbac -n ""
  1. 包装
Install-Package Microsoft.Azure.Management.StreamAnalytics -Version 2.0.0
Install-Package Microsoft.Rest.ClientRuntime.Azure.Authentication -Version 2.3.1
  1. 代码
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
            string clientId = "23***b79c";
            string clientSecret = "";
            string ActiveDirectoryTenantId = "e****b";

            var credentials = await ApplicationTokenProvider.LoginSilentAsync(ActiveDirectoryTenantId,clientId,clientSecret);

            StreamAnalyticsManagementClient streamAnalyticsManagementClient = new StreamAnalyticsManagementClient(credentials)
            {
                SubscriptionId = "e*****8"
            };
           var jobs = await  streamAnalyticsManagementClient.StreamingJobs.ListAsync();
            foreach (var job in jobs) {
                Console.WriteLine(job.Id);
            }