export AZURE_SUBSCRIPTION_ID=your-subscription-id
添加环境变量后,请从控制台窗口运行 source ~/.bash_profile
,使更改生效。
什么是资源组?
资源组是用于保存 Azure 解决方案相关资源的容器。 资源组可以包含解决方案的所有资源,也可以只包含想要作为组来管理的资源。 在决定如何将资源添加到资源组时,要根据对组织最为有利的原则。 通常可将共享相同生命周期的资源添加到同一资源组,以便将其作为一个组轻松部署、更新和删除。
” 资源组存储有关资源的元数据。 当指定资源组的位置时,也就指定了元数据的存储位置。 出于合规性原因,可能需要确保数据存储在某一特定区域。
创建资源组
若要创建资源组,请使用 ResourceManagementClient.resource_groups.create_or_update。
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.create_or_update(
"exampleGroup",
"location": "westus"
print(f"Provisioned resource group with ID: {rg_result.id}")
列出资源组
若要列出订阅中的资源组,请使用 ResourceManagementClient.resource_groups.list。
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_list = resource_client.resource_groups.list()
for rg in rg_list:
print(rg.name)
若要获取资源组,请使用 ResourceManagementClient.resource_groups.get 并提供资源组的名称。
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.get("exampleGroup")
print(f"Retrieved resource group {rg_result.name} in the {rg_result.location} region with resource ID {rg_result.id}")
删除资源组
若要删除资源组,请使用 ResourceManagementClient.resource_groups.begin_delete。
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.begin_delete("exampleGroup")
若要详细了解 Azure 资源管理器如何控制资源的删除,请参阅 Azure 资源管理器资源组的删除。
可以通过使用 Python 类或通过部署 Azure 资源管理器模板(ARM 模板)来部署 Azure 资源。
使用 Python 类部署资源
以下示例使用 StorageManagementClient.storage_accounts.begin_create 创建存储帐户。 存储帐户的名称在 Azure 中必须是唯一的。
import os
import random
from azure.identity import AzureCliCredential
from azure.mgmt.storage import StorageManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
random_postfix = ''.join(random.choices('abcdefghijklmnopqrstuvwxyz1234567890', k=13))
storage_account_name = "demostore" + random_postfix
storage_client = StorageManagementClient(credential, subscription_id)
storage_account_result = storage_client.storage_accounts.begin_create(
"exampleGroup",
storage_account_name,
"location": "westus",
"sku": {
"name": "Standard_LRS"
使用 ARM 模板部署资源
若要部署 ARM 模板,请使用 ResourceManagementClient.deployments.begin_create_or_update。 以下示例需要名为 storage.json
的本地模板。
import os
import json
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.resource.resources.models import DeploymentMode
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
with open("storage.json", "r") as template_file:
template_body = json.load(template_file)
rg_deployment_result = resource_client.deployments.begin_create_or_update(
"exampleGroup",
"exampleDeployment",
"properties": {
"template": template_body,
"parameters": {
"storagePrefix": {
"value": "demostore"
"mode": DeploymentMode.incremental
以下示例显示了你即将部署的名为 storage.json
的 ARM 模板:
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
"resources": [
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
若要了解有关部署 ARM 模板的详细信息,请参阅使用 ARM 模板和 Azure CLI 部署资源。
锁定资源组
锁定可以防止组织中的其他用户意外删除或修改重要资源。
若要防止删除资源组及其资源,请使用 ManagementLockClient.management_locks.create_or_update_at_resource_group_level。
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.create_or_update_at_resource_group_level(
"exampleGroup",
"lockGroup",
"level": "CanNotDelete"
若要获取资源组锁定,请使用 ManagementLockClient.management_locks.list_at_resource_group_level。
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.get_at_resource_group_level("exampleGroup", "lockGroup")
print(f"Lock {lock_result.name} applies {lock_result.level} lock")
若要删除资源组锁定,请使用 ManagementLockClient.management_locks.delete_at_resource_group_level。
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_client.management_locks.delete_at_resource_group_level("exampleGroup", "lockGroup")
有关详细信息,请参阅 使用 Azure 资源管理器锁定资源。
标记资源组
可以将标记应用到资源组和资源,以按照逻辑组织资产。 有关信息,请参阅使用标记组织 Azure 资源。
将资源组导出到模板
若要协助创建 ARM 模板,可以从现有资源导出模板。 有关详细信息,请参阅使用 Azure 门户导出模板。
管理对资源组的访问
可以通过 Azure 基于角色的访问控制 (Azure RBAC) 管理对 Azure 中资源的访问权限。 有关详细信息,请参阅使用 Azure CLI 添加或删除 Azure 角色分配。
若要了解 Azure 资源管理器,请参阅 Azure 资源管理器概述。
有关身份验证选项的详细信息,请参阅 使用适用于 Python 的 Azure SDK 向 Azure 服务验证 Python 应用。