以编程方式获取Application Insights Instrumentation Key

时间:2017-11-29 19:02:49

标签: c# azure azure-application-insights azure-resource-manager

我正在尝试获取以编程方式在我的应用程序中配置Application Insights所需的检测密钥 api密钥

我这样做是因为我有许多应用程序,每个应用程序都有独立的Application Insights实例,需要单独配置。

我尝试使用Microsoft.Azure.Management.ResourceManager来获取Azure上的资源,但我看不到获取或设置所需信息的方法。

这是我到目前为止所拥有的

ServiceClientCredentials credentials = await AuthenticationManagement.GetToken();

using (var resourceClient = new ResourceManagementClient(credentials))
{
    resourceClient.SubscriptionId = AuthenticationManagement.SubscriptionId;

    foreach (var item in resourceClient.Resources.List(new ODataQuery<GenericResourceFilter>(o => o.ResourceType == "microsoft.insights/components")
    {
        Expand = "$expand=Properties"
    }))
    {
        Console.WriteLine(item.Properties); //Still empty?
    }

}

我现在已经陷入困境,因为我没有看到更新或检索API所需值的明显方法。

那么有人可以提供有关如何使用ResourceManagementClient检索此信息的任何指导吗?

1 个答案:

答案 0 :(得分:3)

终于解决了。我正在寻找的课程位于Microsoft.Azure.Management.ApplicationInsights,你会发现ApplicationInsightsManagementClient,它允许你创建一个web api密钥并检索有关你的见解服务的更多细节。可以找到nuget包here

这就是代码的样子

using (var appInsightsManagementClient = new ApplicationInsightsManagementClient(credentials))
{
    ServiceClientCredentials credentials = await AuthenticationManagement.GetToken();

    appInsightsManagementClient.SubscriptionId = AuthenticationManagement.SubscriptionId;

    appInsightsManagementClient.APIKeys.Create("Resource-Group", "Resource-Name", new APIKeyRequest());
}