如何获取在Azure门户上为诊断设置列出的资源列表

时间:2019-10-19 13:09:18

标签: azure azure-rest-api

使用azure rest API不会在azure门户的诊断设置下显示列表

我尝试使用azure rest API进行诊断设置列表

我想要使用azure rest API从azure门户进行诊断设置下的资源列表。

so the attached snapshot is what we want to get

1 个答案:

答案 0 :(得分:0)

似乎没有一个API调用可以检索所有诊断设置,您可以获取指定资源的活动诊断设置列表

请参阅链接https://docs.microsoft.com/en-us/rest/api/monitor/diagnosticsettings/list

更新

1。首先,转到您的sql server>访问控制(IAM)>添加>添加角色分配并将角色分配给您的服务主体。

enter image description here

2。使用以下rest api C#代码获取sql数据库诊断设置信息。

public static void getDiaSettings()
{
    var appId = "xxxxxxxx";
    var secretKey = "xxxxxxxx";
    var tenantId = "xxxxxxxx";
    var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
    ClientCredential clientCredential = new ClientCredential(appId, secretKey);
    var tokenResponse = context.AcquireTokenAsync("https://management.azure.com/", clientCredential).Result;
    var accessToken = tokenResponse.AccessToken;
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
        var baseUrl = new Uri($"https://management.azure.com/");
        var request2=  baseUrl +
                     @"/subscriptions/xxxxxxxx/resourceGroups/yourResourceGroup/providers/Microsoft.Sql/servers/yourSqlServer/databases/yourSqlDatabase/providers/microsoft.insights/diagnosticSettings?api-version=2017-05-01-preview";
        var response = client.GetAsync(request2).Result.Content.ReadAsStringAsync().Result;
    }
}