Протокол асинхронного разбиения по страницам недоступен (Azure SDK для Python) - PullRequest
0 голосов
/ 10 октября 2018

Чего я пытаюсь достичь

Я пытаюсь автоматизировать создание подписки и группы ресурсов в Azure с помощью Python SDK.

Чтобы сделать это,Мне нужна основная учетная запись службы (идентификатор клиента; секрет клиента; идентификатор арендатора) с разрешениями, по крайней мере, для получения учетных записей и создания подписок и групп ресурсов.


Как я пытаюсьдостигните этого

Я попытался перечислить учетные записи безуспешно (да, я импортирую azure.mgmt.billing, azure.mgmt и azure.common, среди прочих)

  1. Сначала я создаю экземпляр клиента:

    billing_client = azure.mgmt.billing.BillingManagementClient(credentials, subscription_id)
    
  2. Затем я попытался распечатать результаты двумя различными способами:

    # A
    print(list(billing_client.enrollment_accounts.list()))
    
    # B
    for enrollment_account in billing_client.enrollment_accounts.list():
        print(enrollment_account)
    

С какой проблемой я сталкиваюсь?

Проблема, с которой я сталкиваюсь, заключается в том, что я получаю следующую ошибку:

Асинхронный протокол подкачки не выполняется.доступно для EnrollmentAccountPaged

Это также происходит с другими list() методами, например, когда я получаю группы ресурсов, используя что-то вроде

rm_client = ResourceManagementClient(credentials, subscription_id)
resource_groups = rm_client.resource_groups.list()

Затем я получаю ошибку:

Асинхронный протокол подкачки не доступен для ResourceGroupPaged


Как бы я посчитал мою проблему решенной?

Мне бы хотелось узнать, почему я получаю эту ошибку и как ее исправить.Пример кода из Azure не использует методы или объекты по-другому.


Как среда?

Версия Python: Python 3.7

Пакеты:

Package Version Latest Version
PyJWT   1.6.4   1.6.4
adal    1.1.0   1.1.0
asn1crypto  0.24.0  0.24.0
azure-common    1.1.16  1.1.16
azure-mgmt  4.0.0   4.0.0
azure-mgmt-advisor  1.0.1   1.0.1
azure-mgmt-applicationinsights  0.1.1   0.1.1
azure-mgmt-authorization    0.50.0  0.50.0
azure-mgmt-batch    5.0.1   5.0.1
azure-mgmt-batchai  2.0.0   2.0.0
azure-mgmt-billing  0.2.0   0.2.0
azure-mgmt-cdn  3.0.0   3.0.0
azure-mgmt-cognitiveservices    3.0.0   3.0.0
azure-mgmt-commerce 1.0.1   1.0.1
azure-mgmt-compute  4.3.0   4.3.0
azure-mgmt-consumption  2.0.0   2.0.0
azure-mgmt-containerinstance    1.2.0   1.2.0
azure-mgmt-containerregistry    2.2.0   2.2.0
azure-mgmt-containerservice 4.2.2   4.2.2
azure-mgmt-cosmosdb 0.4.1   0.5.0
azure-mgmt-datafactory  0.6.0   0.6.0
azure-mgmt-datalake-analytics   0.6.0   0.6.0
azure-mgmt-datalake-nspkg   2.0.0   3.0.0
azure-mgmt-datalake-store   0.5.0   0.5.0
azure-mgmt-datamigration    1.0.0   2.0.0
azure-mgmt-devspaces    0.1.0   0.1.0
azure-mgmt-devtestlabs  2.2.0   2.2.0
azure-mgmt-dns  2.1.0   2.1.0
azure-mgmt-eventgrid    1.0.0   1.0.0
azure-mgmt-eventhub 2.1.0   2.1.0
azure-mgmt-hanaonazure  0.1.1   0.2.1
azure-mgmt-iotcentral   0.1.0   0.2.0
azure-mgmt-iothub   0.5.0   0.6.0
azure-mgmt-iothubprovisioningservices   0.2.0   0.2.0
azure-mgmt-keyvault 1.1.0   1.1.0
azure-mgmt-loganalytics 0.2.0   0.2.0
azure-mgmt-logic    3.0.0   3.0.0
azure-mgmt-machinelearningcompute   0.4.1   0.4.1
azure-mgmt-managementgroups 0.1.0   0.1.0
azure-mgmt-managementpartner    0.1.0   0.1.0
azure-mgmt-maps 0.1.0   0.1.0
azure-mgmt-marketplaceordering  0.1.0   0.1.0
azure-mgmt-media    1.0.0   1.0.0
azure-mgmt-monitor  0.5.2   0.5.2
azure-mgmt-msi  0.2.0   0.2.0
azure-mgmt-network  2.2.1   2.2.1
azure-mgmt-notificationhubs 2.0.0   2.0.0
azure-mgmt-nspkg    3.0.2   3.0.2
azure-mgmt-policyinsights   0.1.0   0.1.0
azure-mgmt-powerbiembedded  2.0.0   2.0.0
azure-mgmt-rdbms    1.3.0   1.3.0
azure-mgmt-recoveryservices 0.3.0   0.3.0
azure-mgmt-recoveryservicesbackup   0.3.0   0.3.0
azure-mgmt-redis    5.0.0   5.0.0
azure-mgmt-relay    0.1.0   0.1.0
azure-mgmt-reservations 0.2.1   0.3.0
azure-mgmt-resource 2.0.0   2.0.0
azure-mgmt-scheduler    2.0.0   2.0.0
azure-mgmt-search   2.0.0   2.0.0
azure-mgmt-servicebus   0.5.2   0.5.2
azure-mgmt-servicefabric    0.2.0   0.2.0
azure-mgmt-signalr  0.1.1   0.1.1
azure-mgmt-sql  0.9.1   0.9.1
azure-mgmt-storage  2.0.0   3.0.0
azure-mgmt-subscription 0.2.0   0.2.0
azure-mgmt-trafficmanager   0.50.0  0.50.0
azure-mgmt-web  0.35.0  0.40.0
azure-nspkg 3.0.2   3.0.2
certifi 2018.8.24   2018.8.24
cffi    1.11.5  1.11.5
chardet 3.0.4   3.0.4
cryptography    2.3.1   2.3.1
idna    2.7 2.7
isodate 0.6.0   0.6.0
msrest  0.6.0   0.6.0
msrestazure 0.5.0   0.5.0
oauthlib    2.1.0   2.1.0
pip 10.0.1  18.1
pycparser   2.19    2.19
python-dateutil 2.7.3   2.7.3
requests    2.19.1  2.19.1
requests-oauthlib   1.0.0   1.0.0
setuptools  39.1.0  40.4.3

1 Ответ

0 голосов
/ 10 октября 2018

Это предупреждение журнала о том, что этот пакет не готов к поддержке асинхронного синтаксиса, и это правда, мы выпустили первую часть среды выполнения в msrest 0.6.0, но мы не выпустили никаких пакетов сПоддержка асинхронности пока отсутствует.

Для справки, это всего лишь предупреждение: https://github.com/Azure/msrest-for-python/blob/master/msrest/async_paging.py#L40

Это не повлияет на любой код и не вызовет никаких исключений.Вы столкнетесь с проблемой, только если попытаетесь использовать async for асинхронного синтаксиса (потому что, как говорится в предупреждении, он не готов к использованию).

Когда мы начнем отправлять асинхронные совместимые пакеты к концув этом году это предупреждение автоматически исчезнет, ​​когда все больше и больше пакетов будет готово.

Если это предупреждение действительно является для вас проблемой, вы можете отключить регистратор "msrest.async_paging" или прикрепить msrest к 0.5.5 (до поддержки асинхронного ядра).

Не стесняйтесь открывать проблему на нашем трекере, если вы считаете, что это действительно серьезная проблема, и в зависимости от того, сколько людей я получаю плохие отзывы, я могу изменить ее на отладка на несколько месяцев.Но как только будут выпущены асинхронные пакеты, это станет важным источником обратной связи, и я действительно думаю, что это заслуживает предупреждения .https://github.com/Azure/azure-sdk-for-python/issues

Спасибо за ваш отзыв!

(мне принадлежит этот код в Microsoft).

Редактировать: Если вы не единственный, кто задает вопросы оЯ выпустил 0.6.1, которая удаляет это предупреждение.

...