Обработка нумерации страниц в Python при взаимодействии с API Azure Graph.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обработка нумерации страниц в Python при взаимодействии с API Azure Graph.

Сообщение Anonymous »

Я получаю все теги групп ресурсов в своем клиенте с помощью запроса Azure Graph, который отлично работает с помощью обозревателя графиков Azure на портале.
Вот запрос: >

Код: Выделить всё

resourcecontainers
| where type == 'microsoft.resources/subscriptions/resourcegroups'
| extend dates=format_datetime(now(), "yyyy-MM-dd")
| join kind=leftouter (
resourcecontainers
| where type == 'microsoft.resources/subscriptions'
| project SubscriptionName=name, subscriptionId)
on subscriptionId
| project SubscriptionName, subscriptionId, resourceGroup, client_entity_name=tags.client_entity_name,
owner_contact=tags.owner_contact, owner_group=tags.owner_group, financial_contact=tags.financial_contact, billing_code=tags.billing_code, security_contact=tags.security_contact,
operational_contact=tags.operational_contact, profil=tags.profil, guid=tags.guid
Я получаю все результаты на портале (более 2000 групп ресурсов).
Когда я пытался сделать то же самое, используя свой скрипт Python , у меня есть ограничение на количество страниц в 530 ресурсов.
Вот мой скрипт:

Код: Выделить всё

from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.resourcegraph.models import *
import json

# Initialize Azure credentials
credentials = DefaultAzureCredential()

# Initialize Resource Graph client
resource_graph_client = ResourceGraphClient(credentials)
skip = 0
result = []

query_code = f"""
resourcecontainers
| where type == 'microsoft.resources/subscriptions/resourcegroups'
| extend dates=format_datetime(now(), "yyyy-MM-dd")
| join kind=leftouter (
resourcecontainers
| where type == 'microsoft.resources/subscriptions'
| project SubscriptionName=name, subscriptionId)
on subscriptionId
| project SubscriptionName, subscriptionId, resourceGroup, client_entity_name=tags.client_entity_name,
owner_contact=tags.owner_contact, owner_group=tags.owner_group, financial_contact=tags.financial_contact, billing_code=tags.billing_code, security_contact=tags.security_contact,
operational_contact=tags.operational_contact, profil=tags.profil, guid=tags.guid, cloudbundle_type=tags.cloudbundle_type, environment=tags.environment,
classification=tags.classification, app_name=tags.app_name, app_family=tags.app_family, application_id=tags.application_id,
managed_by=tags.managed_by, managed_by_capmsp=tags.managed_by_capmsp, capmsp_service_level=tags.capmsp_service_level, sla_class=tags.sla_class,
version=tags.version, dates, type, location, id_prefix=id
"""

query = QueryRequest(
query= query_code
)
query_response = resource_graph_client.resources(query)
query_response_str = str(query_response)
json_data = json.dumps(query_response_str)

json_data = json.loads(json_data)

output_file = "resource_groups_tags.txt"
with open(output_file, "w") as f:
json.dump(json_data, f, indent=4)
Вот первая часть ответа:

Код: Выделить всё

{'additional_properties': {}, 'total_records': 530, 'count': 530, 'result_truncated': 'false', 'skip_token': None, 'data': [{'SubscriptionName': '
Я действительно не понимаю, как обрабатывать нумерацию страниц, чтобы получить все результаты, поскольку в запросе нет пропуска/смещения. В документации Microsoft говорится о «skip_token», но мне это не совсем понятно, в ответе для него установлено значение «Нет».
Может ли кто-нибудь помочь с этим?
Я попробовал пропустить, ограничить... но пропуск с ограничением не сработал, поэтому я не знаю, как с этим справиться.

Подробнее здесь: https://stackoverflow.com/questions/784 ... -graph-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»