添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 已安裝 Python 3.7 或更新版本。 若要安裝最新版本,請參閱 Python.org

  • 下列 Azure 程式庫套件適用于安裝在虛擬環境中的 Python。 若要安裝任何套件,請使用 pip install {package-name}

  • azure-identity
  • azure-mgmt-resource
  • azure-mgmt-storage
  • 如果您的虛擬環境中已安裝舊版的這些套件,您可能需要使用 更新這些套件 pip install --upgrade {package-name}

  • 本文中的範例使用 CLI 型驗證 ( AzureCliCredential ) 。 視您的環境而定,您可能需要先執行 az login 以驗證。

  • 具有 Azure 訂用帳戶識別碼的環境變數。 若要取得您的 Azure 訂用帳戶識別碼,請使用:

    az account show --name 'your subscription name' --query id -o tsv
    

    若要設定值,請使用您環境的 選項。

    Windows Linux macOS
    export AZURE_SUBSCRIPTION_ID=your-subscription-id
    

    新增環境變數之後,請從主控台視窗執行 source ~/.bashrc,讓變更生效。

    編輯您的.bash_profile,並新增環境變數:

    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 Resource Manager 如何決定資源刪除順序的詳細資訊,請參閱 Azure Resource Manager 資源群組刪除

    您可以使用 Python 類別或部署 Azure Resource Manager範本 (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 Resource Manager 來鎖定資源

    標記資源群組

    您可以將標籤套用至資源群組和資源,以便以邏輯方式組織您的資產。 如需資訊,請參閱使用標記組織您的 Azure 資源

    將資源群組匯出至範本

    若要協助建立 ARM 範本,您可以從現有的資源匯出範本。 如需詳細資訊,請參閱使用 Azure 入口網站 匯出範本

    管理資源群組的存取權

    Azure 角色型存取控制 (Azure RBAC) 是管理 Azure 中資源存取權的方式。 如需詳細資訊,請參閱使用 Azure CLI 新增或移除 Azure 角色指派

  • 若要了解 Azure Resource Manager,請參閱 Azure Resource Manager 概觀
  • 如需驗證選項的詳細資訊,請參閱 使用適用于 Python 的 Azure SDK 向 Azure 服務驗證 Python 應用程式
  •