添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

除非另行说明,否则本文中的所有资源在 Linux/macOS bash 和 Windows 命令行界面上的工作方式相同。

本文稍后部分提供了 等效的 Azure CLI 命令

1:设置本地开发环境

如果尚未设置,请按照 为 Azure 配置本地 Python 开发环境 中的所有说明进行操作。

请务必为该项目创建一个虚拟环境并将其激活。

2:安装 Azure 库包

创建一个具有以下内容的名为 requirements.txt 的文件:

azure-mgmt-resource>=18.0.0 azure-identity>=1.5.0

请务必使用这些版本的库。 使用较旧的版本会导致错误,例如“'AzureCliCredential' 对象没有特性 'signed_session'”。

在激活了虚拟环境的终端或命令提示符下,安装下列要求:

pip install -r requirements.txt

3:编写代码用于处理资源组

3a. 列出订阅中的资源组

创建名为 list_groups.py 的 Python 文件,其中包含以下代码。 注释对详细信息进行了说明:

# Import the needed credential and management objects from the libraries. from azure.identity import AzureCliCredential from azure.mgmt.resource import ResourceManagementClient import os # Acquire a credential object using CLI-based authentication. credential = AzureCliCredential() # Retrieve subscription ID from environment variable. subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"] # Obtain the management object for resources. resource_client = ResourceManagementClient(credential, subscription_id) # Retrieve the list of resource groups group_list = resource_client.resource_groups.list() # Show the groups in formatted output column_width = 40 print("Resource Group".ljust(column_width) + "Location") print("-" * (column_width * 2)) for group in list(group_list): print(f"{group.name:<{column_width}}{group.location}")

3b. 列出特定资源组中的资源

创建名为 list_resources.py 的 Python 文件,其中包含以下代码。 注释提供了详细信息。

默认情况下,代码会在“myResourceGroup”中列出资源。 若要使用其他资源组,请将 RESOURCE_GROUP_NAME 环境变量设置为所需的组名。

# Import the needed credential and management objects from the libraries. from azure.identity import AzureCliCredential from azure.mgmt.resource import ResourceManagementClient import os # Acquire a credential object using CLI-based authentication. credential = AzureCliCredential() # Retrieve subscription ID from environment variable. subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"] # Retrieve the resource group to use, defaulting to "myResourceGroup". resource_group = os.getenv("RESOURCE_GROUP_NAME", "myResourceGroup") # Obtain the management object for resources. resource_client = ResourceManagementClient(credential, subscription_id) # Retrieve the list of resources in "myResourceGroup" (change to any name desired). # The expand argument includes additional properties in the output. resource_list = resource_client.resources.list_by_resource_group( resource_group, expand = "createdTime,changedTime") # Show the groups in formatted output column_width = 36 print("Resource".ljust(column_width) + "Type".ljust(column_width) + "Create date".ljust(column_width) + "Change date".ljust(column_width)) print("-" * (column_width * 4)) for resource in list(resource_list): print(f"{resource.name:<{column_width}}{resource.type:<{column_width}}" f"{str(resource.created_time):<{column_width}}{str(resource.changed_time):<{column_width}}")

代码中的身份验证

此代码使用基于 CLI 的身份验证方法(使用 AzureCliCredential),因为它演示了你可能会使用 Azure CLI 直接执行的操作。 在这两种情况下,你使用相同的标识进行身份验证。 根据所用的环境,你可能需要先运行 az login 来进行身份验证。

若要在生产脚本中使用此类代码 (例如,若要自动执行 VM 管理) ,请使用 DefaultAzureCredential (建议) 或基于服务主体的方法,如 如何使用 Azure 服务对 Python 应用进行身份验证中所述。

  • AzureCliCredential (azure.identity)
  • ResourceManagementClient (azure.mgmt.resource)
  • 4:运行脚本

    列出订阅中的所有资源组:

    python list_groups.py
    

    列出资源组中的所有资源:

    python list_resources.py
    

    有关参考:等效 Azure CLI 命令

    以下 Azure CLI 命令使用 JSON 输出来列出订阅中的资源组:

    az group list
    

    以下命令列出 centralus 区域中“myResourceGroup”内的资源(必须使用位置参数来标识特定数据中心):

    az resource list --resource-group myResourceGroup --location centralus
    
  • 示例:预配资源组
  • 示例:预配 Azure 存储
  • 示例:使用 Azure 存储
  • 示例:预配 Web 应用并部署代码
  • 示例:预配和查询数据库
  • 示例:预配虚拟机
  • 将 Azure 托管磁盘与虚拟机一起使用
  • 完成有关 Azure SDK for Python 的简短调查
  •