Microsoft Azure Compute Management Client Library for programmatic management of Azure compute resources including virtual machines, scale sets, disks, and related infrastructure.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Management of Azure Cloud Services including roles, update domains, and operating system configurations. Cloud Services provide a platform-as-a-service (PaaS) compute option for deploying highly available, infinitely-scalable applications and APIs.
Core operations for managing Azure Cloud Services.
class CloudServicesOperations:
def begin_create_or_update(
resource_group_name: str,
cloud_service_name: str,
parameters: CloudService
) -> LROPoller[CloudService]:
"""
Create or update a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
parameters: Cloud service configuration
Returns:
Long-running operation poller for CloudService
"""
def begin_delete(resource_group_name: str, cloud_service_name: str) -> LROPoller[None]:
"""
Delete a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Long-running operation poller
"""
def get(resource_group_name: str, cloud_service_name: str) -> CloudService:
"""
Get cloud service details.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Cloud service details
"""
def list(resource_group_name: str) -> Iterable[CloudService]:
"""
List cloud services in a resource group.
Args:
resource_group_name: Name of the resource group
Returns:
Iterable of cloud services
"""
def list_all() -> Iterable[CloudService]:
"""
List all cloud services in the subscription.
Returns:
Iterable of all cloud services
"""Operations for controlling cloud service power state.
def begin_start(resource_group_name: str, cloud_service_name: str) -> LROPoller[None]:
"""
Start a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Long-running operation poller
"""
def begin_power_off(resource_group_name: str, cloud_service_name: str) -> LROPoller[None]:
"""
Power off a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Long-running operation poller
"""
def begin_restart(resource_group_name: str, cloud_service_name: str) -> LROPoller[None]:
"""
Restart a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Long-running operation poller
"""
def begin_rebuild(resource_group_name: str, cloud_service_name: str) -> LROPoller[None]:
"""
Rebuild a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Long-running operation poller
"""Operations for managing roles within cloud services.
class CloudServiceRolesOperations:
def get(
resource_group_name: str,
cloud_service_name: str,
role_name: str
) -> CloudServiceRole:
"""
Get cloud service role details.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
role_name: Name of the role
Returns:
Cloud service role details
"""
def list(
resource_group_name: str,
cloud_service_name: str
) -> Iterable[CloudServiceRole]:
"""
List roles in a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Iterable of cloud service roles
"""Operations for managing individual role instances.
class CloudServiceRoleInstancesOperations:
def begin_delete(
resource_group_name: str,
cloud_service_name: str,
role_instance_name: str
) -> LROPoller[None]:
"""
Delete a role instance.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
role_instance_name: Name of the role instance
Returns:
Long-running operation poller
"""
def get(
resource_group_name: str,
cloud_service_name: str,
role_instance_name: str
) -> RoleInstance:
"""
Get role instance details.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
role_instance_name: Name of the role instance
Returns:
Role instance details
"""
def list(
resource_group_name: str,
cloud_service_name: str
) -> Iterable[RoleInstance]:
"""
List role instances in a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Iterable of role instances
"""
def begin_restart(
resource_group_name: str,
cloud_service_name: str,
role_instance_name: str
) -> LROPoller[None]:
"""
Restart a role instance.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
role_instance_name: Name of the role instance
Returns:
Long-running operation poller
"""
def begin_reimage(
resource_group_name: str,
cloud_service_name: str,
role_instance_name: str
) -> LROPoller[None]:
"""
Reimage a role instance.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
role_instance_name: Name of the role instance
Returns:
Long-running operation poller
"""Operations for managing update domains in cloud services.
class CloudServicesUpdateDomainOperations:
def walk_update_domain(
resource_group_name: str,
cloud_service_name: str,
update_domain: int
) -> None:
"""
Walk an update domain to apply updates.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
update_domain: Update domain number
"""
def get_update_domain(
resource_group_name: str,
cloud_service_name: str,
update_domain: int
) -> UpdateDomain:
"""
Get update domain details.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
update_domain: Update domain number
Returns:
Update domain details
"""
def list_update_domains(
resource_group_name: str,
cloud_service_name: str
) -> Iterable[UpdateDomain]:
"""
List update domains in a cloud service.
Args:
resource_group_name: Name of the resource group
cloud_service_name: Name of the cloud service
Returns:
Iterable of update domains
"""Operations for managing operating systems in cloud services.
class CloudServiceOperatingSystemsOperations:
def get_os_version(
location: str,
os_version_name: str
) -> OSVersion:
"""
Get details of a specific OS version.
Args:
location: Azure region name
os_version_name: OS version name
Returns:
OS version details
"""
def list_os_versions(location: str) -> Iterable[OSVersion]:
"""
List available OS versions for cloud services.
Args:
location: Azure region name
Returns:
Iterable of available OS versions
"""
def get_os_family(
location: str,
os_family_name: str
) -> OSFamily:
"""
Get details of a specific OS family.
Args:
location: Azure region name
os_family_name: OS family name
Returns:
OS family details
"""
def list_os_families(location: str) -> Iterable[OSFamily]:
"""
List available OS families for cloud services.
Args:
location: Azure region name
Returns:
Iterable of available OS families
"""class CloudService:
"""Describes the cloud service."""
id: Optional[str]
name: Optional[str]
type: Optional[str]
location: str
tags: Optional[Dict[str, str]]
system_data: Optional[SystemData]
properties: Optional[CloudServiceProperties]
class CloudServiceProperties:
"""Cloud service properties."""
package_url: Optional[str]
configuration: Optional[str]
configuration_url: Optional[str]
start_cloud_service: Optional[bool]
allow_model_override: Optional[bool]
upgrade_mode: Optional[CloudServiceUpgradeMode]
role_profile: Optional[CloudServiceRoleProfile]
os_profile: Optional[CloudServiceOsProfile]
network_profile: Optional[CloudServiceNetworkProfile]
extension_profile: Optional[CloudServiceExtensionProfile]
provisioning_state: Optional[str]
unique_id: Optional[str]
class CloudServiceRole:
"""Describes a role of the cloud service."""
id: Optional[str]
name: Optional[str]
type: Optional[str]
location: Optional[str]
sku: Optional[CloudServiceRoleSku]
properties: Optional[CloudServiceRoleProperties]
class RoleInstance:
"""Describes the cloud service role instance."""
id: Optional[str]
name: Optional[str]
type: Optional[str]
location: Optional[str]
tags: Optional[Dict[str, str]]
sku: Optional[InstanceSku]
properties: Optional[RoleInstanceProperties]
class CloudServiceRoleProfile:
"""Describes the role profile for the cloud service."""
roles: Optional[List[CloudServiceRoleProfileProperties]]
class CloudServiceOsProfile:
"""Describes the OS profile for the cloud service."""
secrets: Optional[List[CloudServiceVaultSecretGroup]]
class CloudServiceNetworkProfile:
"""Network Profile for the cloud service."""
load_balancer_configurations: Optional[List[LoadBalancerConfiguration]]
slot_type: Optional[CloudServiceSlotType]
swap_slot_configuration: Optional[CloudServiceSlotConfiguration]
class CloudServiceExtensionProfile:
"""Describes a cloud service extension profile."""
extensions: Optional[List[Extension]]
class UpdateDomain:
"""Defines an update domain for the cloud service."""
id: Optional[str]
name: Optional[str]
class OSVersion:
"""Describes a cloud service OS version."""
id: Optional[str]
name: Optional[str]
type: Optional[str]
location: Optional[str]
properties: Optional[OSVersionProperties]
class OSFamily:
"""Describes a cloud service OS family."""
id: Optional[str]
name: Optional[str]
type: Optional[str]
location: Optional[str]
properties: Optional[OSFamilyProperties]from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
credential = DefaultAzureCredential()
compute_client = ComputeManagementClient(credential, "subscription-id")
# Create cloud service
cloud_service_parameters = {
'location': 'East US',
'properties': {
'package_url': 'https://mystorageaccount.blob.core.windows.net/packages/service.cspkg',
'configuration_url': 'https://mystorageaccount.blob.core.windows.net/configs/service.cscfg',
'start_cloud_service': True,
'upgrade_mode': 'Auto',
'role_profile': {
'roles': [
{
'name': 'WebRole1',
'sku': {
'name': 'Standard_D1_v2',
'capacity': 2
}
},
{
'name': 'WorkerRole1',
'sku': {
'name': 'Standard_D2_v2',
'capacity': 1
}
}
]
},
'os_profile': {
'secrets': []
},
'network_profile': {
'load_balancer_configurations': [
{
'name': 'myLB',
'properties': {
'frontend_ip_configurations': [
{
'name': 'myFrontEnd',
'properties': {
'public_ip_address': {
'id': '/subscriptions/.../publicIPAddresses/myPublicIP'
}
}
}
]
}
}
]
}
},
'tags': {
'environment': 'production',
'application': 'web-service'
}
}
operation = compute_client.cloud_services.begin_create_or_update(
'myResourceGroup',
'myCloudService',
cloud_service_parameters
)
cloud_service = operation.result()
print(f"Cloud service deployed: {cloud_service.name}")# List roles in the cloud service
roles = compute_client.cloud_service_roles.list(
'myResourceGroup',
'myCloudService'
)
for role in roles:
print(f"Role: {role.name}")
print(f" SKU: {role.sku.name}")
print(f" Capacity: {role.sku.capacity}")
# List role instances
role_instances = compute_client.cloud_service_role_instances.list(
'myResourceGroup',
'myCloudService'
)
for instance in role_instances:
print(f"Instance: {instance.name}")
print(f" State: {instance.properties.instance_view.statuses}")
print(f" Update Domain: {instance.properties.instance_view.update_domain}")
print(f" Fault Domain: {instance.properties.instance_view.fault_domain}")# List update domains
update_domains = compute_client.cloud_services_update_domain.list_update_domains(
'myResourceGroup',
'myCloudService'
)
print("Available update domains:")
for domain in update_domains:
print(f" Update Domain: {domain.id}")
# Walk update domain to apply updates
compute_client.cloud_services_update_domain.walk_update_domain(
'myResourceGroup',
'myCloudService',
0 # Update domain 0
)
print("Update domain 0 walked successfully")
# Check status after update
cloud_service = compute_client.cloud_services.get(
'myResourceGroup',
'myCloudService'
)
print(f"Service provisioning state: {cloud_service.properties.provisioning_state}")# List available OS families
os_families = compute_client.cloud_service_operating_systems.list_os_families('East US')
print("Available OS families:")
for family in os_families:
print(f" Family: {family.name}")
print(f" Label: {family.properties.label}")
print(f" Type: {family.properties.type}")
# List available OS versions for a specific family
os_versions = compute_client.cloud_service_operating_systems.list_os_versions('East US')
print("\nAvailable OS versions:")
for version in os_versions:
print(f" Version: {version.name}")
print(f" Family: {version.properties.family}")
print(f" Family Label: {version.properties.family_label}")
print(f" Active: {version.properties.is_active}")
print(f" Default: {version.properties.is_default}")# Get detailed instance view
cloud_service = compute_client.cloud_services.get(
'myResourceGroup',
'myCloudService'
)
if cloud_service.properties:
print(f"Unique ID: {cloud_service.properties.unique_id}")
print(f"Provisioning State: {cloud_service.properties.provisioning_state}")
# Power operations
print("Stopping cloud service...")
operation = compute_client.cloud_services.begin_power_off(
'myResourceGroup',
'myCloudService'
)
operation.result()
print("Starting cloud service...")
operation = compute_client.cloud_services.begin_start(
'myResourceGroup',
'myCloudService'
)
operation.result()
# Restart specific role instance
operation = compute_client.cloud_service_role_instances.begin_restart(
'myResourceGroup',
'myCloudService',
'WebRole1_IN_0' # Instance name
)
operation.result()
print("Role instance restarted")
# Reimage role instance (reinstall OS)
operation = compute_client.cloud_service_role_instances.begin_reimage(
'myResourceGroup',
'myCloudService',
'WebRole1_IN_0'
)
operation.result()
print("Role instance reimaged")Install with Tessl CLI
npx tessl i tessl/pypi-azure-mgmt-compute