[英]How to get the Workspace ID of an Azure Log Analytics workspace via C#
It seems there is no Log Analytics C# SDK to get the Workspace ID, my workaround is to get the access token vai Microsoft.Azure.Services.AppAuthentication
, then call the REST API Workspaces - Get , the customerId
in the response is the Workspace ID which you need. 似乎没有Log Analytics C#SDK来获取工作区ID,我的解决方法是获取访问令牌vai
Microsoft.Azure.Services.AppAuthentication
,然后调用REST API Workspaces-Get ,响应中的customerId
是工作区ID您需要的。
My working sample: 我的工作样本:
using Microsoft.Azure.Services.AppAuthentication;
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace ConsoleApp6
{
class Program
{
static void Main(string[] args)
{
CallWebAPIAsync().Wait();
}
static async Task CallWebAPIAsync()
{
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
string accessToken = azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com/").Result;
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
client.BaseAddress = new Uri("https://management.azure.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//GET Method
HttpResponseMessage response = await client.GetAsync("subscriptions/<subscription id>/resourcegroups/<resource group name>/providers/Microsoft.OperationalInsights/workspaces/<workspace name>?api-version=2015-11-01-preview");
if (response.IsSuccessStatusCode)
{
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
}
else
{
Console.WriteLine("Internal server Error");
}
}
}
}
}
For more details about the authentication, you could take a look at this link . 有关身份验证的更多详细信息,您可以查看此链接 。
I've since found that the OperationalInsightsManagementClient
class can be used as well. 从那以后,我发现还可以使用
OperationalInsightsManagementClient
类。
var client = new OperationalInsightsManagementClient(GetCredentials()) {SubscriptionId = subscriptionId};
return (await client.Workspaces.ListByResourceGroupWithHttpMessagesAsync(resourceGroupName))
.Body
.Select(w => w.CustomerId)
.FirstOrDefault();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.