Кажется, что нет Log Analytics C # SDK для получения идентификатора рабочего пространства, мой обходной путь - получить токен доступа vai Microsoft.Azure.Services.AppAuthentication
, затем вызвать REST API Рабочие пространства - получить , customerId
в ответе вам нужен идентификатор рабочей области.
Мой рабочий образец:
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");
}
}
}
}
}
Более подробную информацию об аутентификации вы можете найти по этой ссылке .