Как получить идентификатор рабочей области рабочей области Azure Log Analytics через C # - PullRequest
1 голос
/ 04 июля 2019

Как получить идентификатор рабочей области для рабочей области Log Analytics в Azure через C #?

enter image description here

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

С тех пор я обнаружил, что класс OperationalInsightsManagementClient также можно использовать.

var client = new OperationalInsightsManagementClient(GetCredentials()) {SubscriptionId = subscriptionId};
return (await client.Workspaces.ListByResourceGroupWithHttpMessagesAsync(resourceGroupName))
    .Body
    .Select(w => w.CustomerId)
    .FirstOrDefault();
0 голосов
/ 04 июля 2019

Кажется, что нет 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");
                }
            }
        }
    }
}

enter image description here

Более подробную информацию об аутентификации вы можете найти по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...