Azure Management Core Library for Python
The `azure-mgmt-core` library provides extensions to Azure Core that are specific to Azure Resource Management (ARM), primarily used by Azure SDK management client libraries (e.g., `azure-mgmt-resource`). As a foundational component, it handles common ARM-specific patterns such as long-running operations and authentication challenges. The current stable version is 1.6.0, and it follows the release cadence of the broader Azure SDK for Python.
Warnings
- gotcha Direct installation of `azure-mgmt-core` is generally not needed for end-users. It is an internal dependency automatically installed when you install other service-specific Azure management SDKs (e.g., `azure-mgmt-compute`, `azure-mgmt-resource`).
- breaking Python 3.8 is no longer supported starting with `azure-mgmt-core` version 1.6.0. Earlier versions of the Azure SDK for Python might have supported it, but the current generation of management libraries requires Python 3.9 or later.
- breaking The credential system for Azure SDKs has been completely revamped. Older management libraries used `azure.common.credentials` or `msrestazure.azure_active_directory`. All modern Azure management libraries, which `azure-mgmt-core` underpins, now use classes from the `azure-identity` package.
- gotcha Asynchronous long-running operations in the newer Azure SDKs, which are handled through `azure-mgmt-core`, now typically use methods prefixed with `begin_` (e.g., `begin_create`, `begin_delete`). These methods return an `azure.core.polling.LROPoller` object.
Install
-
pip install azure-mgmt-core
Imports
- ARMPipelineClient
from azure.mgmt.core.pipeline_client import ARMPipelineClient
- ARMChallengeAuthenticationPolicy
from azure.mgmt.core.policies import ARMChallengeAuthenticationPolicy
- get_arm_endpoints
from azure.mgmt.core.tools import get_arm_endpoints
Quickstart
import os
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
# NOTE: azure-mgmt-core is an internal dependency for Azure management SDKs.
# This quickstart demonstrates how a typical Azure management client is used,
# which indirectly relies on azure-mgmt-core.
# Your Azure subscription ID
# It's recommended to set this as an environment variable (AZURE_SUBSCRIPTION_ID)
# or retrieve it from your Azure context.
subscription_id = os.environ.get("AZURE_SUBSCRIPTION_ID", "your-subscription-id")
if subscription_id == "your-subscription-id":
print("Please set the AZURE_SUBSCRIPTION_ID environment variable or replace 'your-subscription-id'.")
exit()
# Authenticate with Azure using DefaultAzureCredential.
# This attempts to authenticate via various methods like environment variables, Azure CLI, managed identity, etc.
credential = DefaultAzureCredential()
# Create a ResourceManagementClient (which uses azure-mgmt-core internally)
resource_client = ResourceManagementClient(credential, subscription_id)
# Example: List all resource groups in the subscription
print(f"Listing resource groups in subscription: {subscription_id}")
for rg in resource_client.resource_groups.list():
print(f"- {rg.name} (Location: {rg.location})")
print("\nQuickstart finished. This demonstrates how an Azure management client (which relies on azure-mgmt-core) is typically used.")