Я использую Python Azure SDK, и для таких вещей, как подсети, объекты ipConfiguration будут иметь общий идентификатор ресурса для подключенного устройства — иногда это сетевой адаптер, PEP или что-то еще. Я знаю, что могу использовать azure-mgmt-resources.ResourceManagementClient, чтобы получить универсальный объект ресурса для одного из них, НО для этого требуется api_version, которая должна быть допустимой версией для конкретного типа объекта!
Есть ли где-нибудь в SDK API для их поиска? например Версия API для «Microsoft.Network/privateEndpoints» — «2024-01-01».
У меня есть таблица поиска тех, которыми я часто пользуюсь, но она кажется грязной.
Чтобы получить последнюю версию API поставщика ресурсов через Azure Python SDK, используйте приведенный ниже пример кода Python:
from azure.identity import ClientSecretCredential
from azure.mgmt.resource import ResourceManagementClient
tenant_id = 'tenantId'
client_id = 'appId'
client_secret = 'secret'
subscription_id = 'subId'
credentials = ClientSecretCredential(tenant_id, client_id, client_secret)
resource_client = ResourceManagementClient(credentials, subscription_id)
provider_namespace = 'Microsoft.Network'
resource_type_name = 'privateEndpoints'
provider = resource_client.providers.get(provider_namespace)
resource_type = next(rt for rt in provider.resource_types if rt.resource_type == resource_type_name)
api_versions = resource_type.api_versions
latest_api_version = api_versions[0]
print(f"The latest API version for {provider_namespace}/{resource_type_name} is: {latest_api_version}")
Ответ:
Вы можете заменить значение resource_type_name
соответствующим образом в зависимости от вашего требования получить последние версии API.
В моем случае я использовал поток учетных данных клиента для аутентификации, предоставив Reader доступ к субъекту-службе на уровне подписки.
@AnotherHowie Рад помочь :)
Аааа! Круто, я бы никогда не догадался, что это называется провайдером. Спасибо!