使用适用于 .NET 的 Azure 流分析 API 设置和运行分析作业
Posted
技术标签:
【中文标题】使用适用于 .NET 的 Azure 流分析 API 设置和运行分析作业【英文标题】:Set up and run analytics jobs using the Azure Stream Analytics API for .NET 【发布时间】:2021-06-03 16:53:00 【问题描述】:我正在尝试通过这个guide 在.net 中使用流分析客户端运行。
在 Visual Studio 中,我在 GetCredentials 方法中收到错误消息,提示“UserTokenProvider 不包含 LoginWithPromptAsync 的定义”。
根据设置项目的要求,我正在使用以下内容:
Microsoft.Azure.Management.StreamAnalytics - 版本 2.0.0
Microsoft.Rest.ClientRuntime.Azure.Authentication -Version 2.3.1
我可以使用其他哪种方法,有人可以帮忙吗?
【问题讨论】:
【参考方案1】:如果要使用适用于 .NET 的 Azure 流分析 API 运行分析作业,可以使用服务主体进行身份验证。
例如
-
创建服务主体并将 Azure RABC 角色分配给 sp
az ad sp create-for-rbac -n ""
-
包
Install-Package Microsoft.Azure.Management.StreamAnalytics -Version 2.0.0
Install-Package Microsoft.Rest.ClientRuntime.Azure.Authentication -Version 2.3.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);
【讨论】:
非常感谢您的回答,这真的很有帮助。我检查了我的 Azure 订阅,获得创建服务主体的权限可能是个问题。可以用另一种方式完成吗?实际上,我可以连接到 Azure 中的 Synapse SQL 池,并为此使用密码和电话代码。也许这可以用于流分析? @vinx 是不是要使用用户名和密码进行身份验证? 是的,我实际上是在使用用户名、密码和验证码登录Azure中的数据库。是否可以对流分析使用相同的方法? @vinx 根据我的测试。对我来说没关系。我可以使用方法UserTokenProvider.LoginWithPromptAsync
;i.imgur.com/0gjx9Gz.gif
非常感谢您的回答@Jim。您使用的是哪个版本的 Microsoft.Rest.Azure.Authentication?以上是关于使用适用于 .NET 的 Azure 流分析 API 设置和运行分析作业的主要内容,如果未能解决你的问题,请参考以下文章
Azure 通知中心:SendTemplateNotificationAsync 是不是适用于 .net Core
适用于 .NET Core Azure WebJob 的 Application Insights
是否有适用于 Azure 的 c#/asp.net mvc3 文件图像选择器/上传器控件
Azure.Cosmos 还是 Microsoft.Azure.Cosmos、Azure.Storage.Blob 还是 Microsoft.Azure.Storage.Blob?适用于 .NET C