#python #azure
#python #azure
Вопрос:
Мне просто нужно было получить все активные оповещения из Azure Monitor для всех ресурсов в подписке с использованием Python.
Для той же цели доступен rest API, проверьте это.
Я проверил это, но он предоставляет определения оповещений / метрик, а не само оповещение.
Доступно ли что-то подобное с использованием Azure python SDK?
Было бы полезно, если бы кто-нибудь мог предоставить некоторую информацию. Заранее спасибо.
Ответ №1:
Это функция, предоставляемая doc. Но он возвращает это:
Похоже, он не используется для новой версии.
get_all
используется для перечисления всех существующих оповещений. Он возвращает контейнер подкачки для итерации по списку Alert
объектов.
Установить пакет: pip install azure-mgmt-alertsmanagement
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.alertsmanagement import AlertsManagementClient
subscription_id = 'subscription_id '
tenant_id = 'tenant_id '
client_id = 'client_id '
client_secret = 'client_secret'
credentials = ServicePrincipalCredentials(tenant=tenant_id, client_id=client_id, secret=client_secret)
client = AlertsManagementClient(
credentials,
subscription_id
)
for alert in client.alerts.get_all():
print((alert.name))
Итак, я попытался вызвать REST API с помощью Python. Это работает.
import requests
import json
client_id = ''
client_secret = ''
subscription_id = ''
tenant_id = ''
# authorize with azure
url = "https://login.microsoftonline.com/" tenant_id "/oauth2/v2.0/token"
data = "scope=https://management.azure.com/.defaultamp;client_id=" client_id "amp;grant_type=client_credentialsamp;client_secret=" client_secret
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
response = requests.post(url, data=data, headers=headers)
# create new resource group using Azure REST API
# https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.AlertsManagement/alerts?api-version=2018-05-05
url = "https://management.azure.com/subscriptions/" subscription_id "/providers/Microsoft.AlertsManagement/alerts?api-version=2018-05-05"
headers = { 'Authorization': 'Bearer ' response.json()['access_token']}
response = requests.get(url, headers=headers)
print(response.json())