Получение правильной версии API для метода Azure Python delete_by_id - PullRequest
1 голос
/ 26 марта 2019

Я работаю над автоматическим удалением ресурсов Azure на основе тегов, прикрепленных к этим ресурсам.

Я использую Azure SDK для Python (https://github.com/Azure/azure-sdk-for-python) - я нашел, как получить список своих ресурсов и как их удалить с помощью ResourceManagementClient с resources.delete_by_id метод. Однако этот метод требует 2 аргумента - идентификатор ресурса (который у меня есть из ресурсов, перечисленных в ResourceManagementClient ) и версия API (которая отличается для каждого типа ресурса.

Как определить, какую версию API следует передать методу? Я пытался найти что-то в документации и коде SDK, но не смог найти правильное решение.

Версия API может быть даже жестко задана, но она должна работать для всех типов ресурсов.

При использовании некоторых версий API (например, 2018-05-01) я получаю сообщение об ошибке для некоторых типов ресурсов:

Azure Error: NoRegisteredProviderFound
Message: No registered resource provider found for location 'westeurope' and API version '['2018-05-01']' for type 'virtualMachines'. The supported api-versions are '2015-05-01-preview, 2015-06-15, 2016-03-30, 2016-04-30-preview, 2016-08-30, 2017-03-30, 2017-12-01, 2018-04-01, 2018-06-01, 2018-10-01, 2019-03-01'. The supported locations are 'eastus, eastus2, westus, centralus, northcentralus, southcentralus, northeurope, westeurope, eastasia, southeastasia, japaneast, japanwest, australiaeast, australiasoutheast, brazilsouth, southindia, centralindia, westindia, canadacentral, canadaeast, westus2, westcentralus, uksouth, ukwest, koreacentral, koreasouth, francecentral, southafricanorth'.
ERROR: 'CloudError' object has no attribute '__traceback__'

Ответы [ 2 ]

2 голосов
/ 26 марта 2019

Я бы порекомендовал тот же подход, что и реализация CLI, сделав начальный вызов ARM, чтобы получить возможные сопоставления из Resource Provider / Resource Type с версиями (версиями) API, и используйте его, чтобы ввести правильную версию API в ваш вызов .

Получить это сопоставление будет список провайдеров вызова .

Редактировать: я работаю в MS в команде Python SDK.

0 голосов
/ 26 марта 2019

Если я не ошибаюсь, resources.delete_by_id - это оболочка для Delete By Id метода REST API.В настоящее время последняя версия API для этой операции 2018-05-01.Вы можете использовать это в своем вызове метода.

...